diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index 256fb9b78c7..7bc21b3bd1b 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.26 + +* Removes internal native library Dart proxy. + ## 0.6.25 * Adds support for `MediaSettings.fps` for camera preview, image streaming, and video recording. 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 6d283750494..b3eeac7f630 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 // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v26.1.0), do not edit directly. +// Autogenerated from Pigeon (v26.1.2), do not edit directly. // See also: https://pub.dev/packages/pigeon @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") @@ -213,7 +213,7 @@ class CameraXLibraryPigeonInstanceManager( } /** Retrieves the instance associated with identifier, if present, otherwise `null`. */ - fun getInstance(identifier: Long): T? { + fun getInstance(identifier: Long): T? { logWarningIfFinalizationListenerHasStopped() val instance = weakInstances[identifier] as IdentityWeakReference? return instance?.get() 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 a74bd444676..136f62084e0 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 @@ -13,7 +13,6 @@ 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_proxy.dart'; import 'rotated_preview_delegate.dart'; /// The Android implementation of [CameraPlatform] that uses the CameraX library. @@ -26,11 +25,6 @@ class AndroidCameraCameraX extends CameraPlatform { CameraPlatform.instance = AndroidCameraCameraX(); } - /// Proxy for creating `JavaObject`s and calling their methods that require - /// testing. - @visibleForTesting - CameraXProxy proxy = CameraXProxy(); - /// The [ProcessCameraProvider] instance used to access camera functionality. @visibleForTesting ProcessCameraProvider? processCameraProvider; @@ -77,16 +71,16 @@ class AndroidCameraCameraX extends CameraPlatform { String? videoOutputPath; /// Handles access to system resources. - late final SystemServicesManager systemServicesManager = proxy - .newSystemServicesManager( + late final SystemServicesManager systemServicesManager = + SystemServicesManager( onCameraError: (_, String errorDescription) { cameraErrorStreamController.add(errorDescription); }, ); /// Handles retrieving media orientation for a device. - late final DeviceOrientationManager deviceOrientationManager = proxy - .newDeviceOrientationManager( + late final DeviceOrientationManager deviceOrientationManager = + DeviceOrientationManager( onDeviceOrientationChanged: (_, String orientation) { final DeviceOrientation deviceOrientation = _deserializeDeviceOrientation(orientation); @@ -118,8 +112,8 @@ class AndroidCameraCameraX extends CameraPlatform { final StreamQueue videoRecordingEventStreamQueue = StreamQueue(videoRecordingEventStreamController.stream); - late final VideoRecordEventListener _videoRecordingEventListener = proxy - .newVideoRecordEventListener( + late final VideoRecordEventListener _videoRecordingEventListener = + VideoRecordEventListener( onEvent: (_, VideoRecordEvent event) { videoRecordingEventStreamController.add(event); }, @@ -300,11 +294,11 @@ class AndroidCameraCameraX extends CameraPlatform { /// Returns list of all available cameras and their descriptions. @override Future> availableCameras() async { - proxy.setUpGenericsProxy(); + setUpGenerics(); final cameraDescriptions = []; - processCameraProvider ??= await proxy.getInstanceProcessCameraProvider(); + processCameraProvider ??= await ProcessCameraProvider.getInstance(); final List cameraInfos = (await processCameraProvider!.getAvailableCameraInfos()).cast(); @@ -316,15 +310,13 @@ class AndroidCameraCameraX extends CameraPlatform { for (final cameraInfo in cameraInfos) { // 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) { + if ((await CameraSelector( + requireLensFacing: LensFacing.back, + ).filter([cameraInfo])).isNotEmpty) { cameraLensDirection = CameraLensDirection.back; - } else if ((await proxy - .newCameraSelector(requireLensFacing: LensFacing.front) - .filter([cameraInfo])) - .isNotEmpty) { + } else if ((await CameraSelector( + requireLensFacing: LensFacing.front, + ).filter([cameraInfo])).isNotEmpty) { cameraLensDirection = CameraLensDirection.front; } else { //Skip this CameraInfo as its lens direction is unknown @@ -399,9 +391,7 @@ class AndroidCameraCameraX extends CameraPlatform { final LensFacing cameraSelectorLensDirection = _getCameraSelectorLensDirection(cameraDescription.lensDirection); cameraIsFrontFacing = cameraSelectorLensDirection == LensFacing.front; - cameraSelector = proxy.newCameraSelector( - cameraInfoForFilter: chosenCameraInfo, - ); + cameraSelector = CameraSelector(cameraInfoForFilter: chosenCameraInfo); // Start listening for device orientation changes preceding camera creation. unawaited( deviceOrientationManager.startListeningForDeviceOrientationChange(), @@ -421,29 +411,28 @@ class AndroidCameraCameraX extends CameraPlatform { _getQualitySelectorFromPreset(mediaSettings?.resolutionPreset); // Retrieve a fresh ProcessCameraProvider instance. - processCameraProvider ??= await proxy.getInstanceProcessCameraProvider(); + processCameraProvider ??= await ProcessCameraProvider.getInstance(); unawaited(processCameraProvider!.unbindAll()); // Configure Preview instance. - preview = proxy.newPreview( + preview = Preview( resolutionSelector: _presetResolutionSelector, targetFpsRange: _targetFpsRange, - /* use CameraX default target rotation */ targetRotation: null, ); _flutterSurfaceTextureId = await preview!.setSurfaceProvider( systemServicesManager, ); // Configure ImageCapture instance. - imageCapture = proxy.newImageCapture( + imageCapture = ImageCapture( resolutionSelector: _presetResolutionSelector, /* use CameraX default target rotation */ targetRotation: await deviceOrientationManager.getDefaultDisplayRotation(), ); // Configure VideoCapture and Recorder instances. - recorder = proxy.newRecorder(qualitySelector: presetQualitySelector); - videoCapture = proxy.withOutputVideoCapture( + recorder = Recorder(qualitySelector: presetQualitySelector); + videoCapture = VideoCapture.withOutput( videoOutput: recorder!, targetFpsRange: _targetFpsRange, ); @@ -491,11 +480,10 @@ class AndroidCameraCameraX extends CameraPlatform { // Defaults to YUV_420_888 image format. _imageAnalysisOutputImageFormat = _imageAnalysisOutputFormatFromImageFormatGroup(imageFormatGroup); - imageAnalysis = proxy.newImageAnalysis( + imageAnalysis = ImageAnalysis( resolutionSelector: _presetResolutionSelector, targetFpsRange: _targetFpsRange, outputImageFormat: _imageAnalysisOutputImageFormat, - /* use CameraX default target rotation */ targetRotation: null, ); // Bind configured UseCases to ProcessCameraProvider instance & mark Preview @@ -704,12 +692,11 @@ class AndroidCameraCameraX extends CameraPlatform { // 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 meteringPointFactory = DisplayOrientedMeteringPointFactory( + cameraInfo: cameraInfo!, + width: 1, + height: 1, + ); lockedFocusPoint = await meteringPointFactory.createPointWithSize( 0.5, 0.5, @@ -853,17 +840,16 @@ class AndroidCameraCameraX extends CameraPlatform { /// [cameraId] is not used. @override Future setExposureMode(int cameraId, ExposureMode mode) async { - final Camera2CameraControl camera2Control = proxy.fromCamera2CameraControl( + final camera2Control = Camera2CameraControl.from( cameraControl: cameraControl, ); final lockExposureMode = mode == ExposureMode.locked; - final CaptureRequestOptions captureRequestOptions = proxy - .newCaptureRequestOptions( - options: { - proxy.controlAELockCaptureRequest(): lockExposureMode, - }, - ); + final captureRequestOptions = CaptureRequestOptions( + options: { + CaptureRequest.controlAELock: lockExposureMode, + }, + ); try { await camera2Control.addCaptureRequestOptions(captureRequestOptions); @@ -964,9 +950,7 @@ class AndroidCameraCameraX extends CameraPlatform { final LensFacing cameraSelectorLensDirection = _getCameraSelectorLensDirection(description.lensDirection); cameraIsFrontFacing = cameraSelectorLensDirection == LensFacing.front; - cameraSelector = proxy.newCameraSelector( - cameraInfoForFilter: chosenCameraInfo, - ); + cameraSelector = CameraSelector(cameraInfoForFilter: chosenCameraInfo); // Unbind all use cases and rebind to new CameraSelector final useCases = [videoCapture!]; @@ -1149,12 +1133,10 @@ 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.from(cameraInfo: cameraInfo!); final cameraInfoSupportedHardwareLevel = (await camera2CameraInfo.getCameraCharacteristic( - proxy.infoSupportedHardwareLevelCameraCharacteristics(), + CameraCharacteristics.infoSupportedHardwareLevel, ))! as InfoSupportedHardwareLevel; @@ -1362,7 +1344,7 @@ class AndroidCameraCameraX extends CameraPlatform { // Convert three generically YUV_420_888 formatted image planes into one singular // NV21 formatted image plane if NV21 was requested for image streaming. The conversion // should be null safe. - final Uint8List? bytes = await proxy.getNv21BufferImageProxyUtils( + final Uint8List bytes = await ImageProxyUtils.getNv21Buffer( imageProxy.width, imageProxy.height, planes, @@ -1370,7 +1352,7 @@ class AndroidCameraCameraX extends CameraPlatform { cameraImagePlanes.add( CameraImagePlane( - bytes: bytes!, + bytes: bytes, bytesPerRow: imageProxy.width, // NV21 has 1.5 bytes per pixel (Y plane has width * height; VU plane has width * height / 2), // but this is rounded up because an int is expected. camera_android reports the same. @@ -1421,7 +1403,7 @@ class AndroidCameraCameraX extends CameraPlatform { } await imageAnalysis!.setAnalyzer( - proxy.newAnalyzer(analyze: (_, ImageProxy image) => analyze(image)), + Analyzer(analyze: (_, ImageProxy image) => analyze(image)), ); } @@ -1542,7 +1524,7 @@ class AndroidCameraCameraX extends CameraPlatform { } } - return proxy.newObserver( + return Observer( onChanged: (_, CameraState value) => onChanged(value), ); } @@ -1596,47 +1578,43 @@ class AndroidCameraCameraX extends CameraPlatform { ResolutionStrategy? resolutionStrategy; switch (preset) { case ResolutionPreset.low: - boundSize = proxy.newCameraSize(width: 320, height: 240); + boundSize = CameraSize(width: 320, height: 240); aspectRatio = AspectRatio.ratio4To3; case ResolutionPreset.medium: - boundSize = proxy.newCameraSize(width: 720, height: 480); + boundSize = CameraSize(width: 720, height: 480); case ResolutionPreset.high: - boundSize = proxy.newCameraSize(width: 1280, height: 720); + boundSize = CameraSize(width: 1280, height: 720); aspectRatio = AspectRatio.ratio16To9; case ResolutionPreset.veryHigh: - boundSize = proxy.newCameraSize(width: 1920, height: 1080); + boundSize = CameraSize(width: 1920, height: 1080); aspectRatio = AspectRatio.ratio16To9; case ResolutionPreset.ultraHigh: - boundSize = proxy.newCameraSize(width: 3840, height: 2160); + boundSize = CameraSize(width: 3840, height: 2160); aspectRatio = AspectRatio.ratio16To9; case ResolutionPreset.max: // Automatically set strategy to choose highest available. - resolutionStrategy = proxy.highestAvailableStrategyResolutionStrategy(); - return proxy.newResolutionSelector( - resolutionStrategy: resolutionStrategy, - ); + resolutionStrategy = ResolutionStrategy.highestAvailableStrategy; + return ResolutionSelector(resolutionStrategy: resolutionStrategy); case null: // If no preset is specified, default to CameraX's default behavior // for each UseCase. return null; } - resolutionStrategy = proxy.newResolutionStrategy( - boundSize: proxy.newCameraSize( - width: boundSize.width, - height: boundSize.height, - ), + resolutionStrategy = ResolutionStrategy( + boundSize: CameraSize(width: boundSize.width, height: boundSize.height), fallbackRule: fallbackRule, ); - final ResolutionFilter resolutionFilter = proxy - .createWithOnePreferredSizeResolutionFilter(preferredSize: boundSize); + final resolutionFilter = ResolutionFilter.createWithOnePreferredSize( + preferredSize: boundSize, + ); final AspectRatioStrategy? aspectRatioStrategy = aspectRatio == null ? null - : proxy.newAspectRatioStrategy( + : AspectRatioStrategy( preferredAspectRatio: aspectRatio, fallbackRule: AspectRatioStrategyFallbackRule.auto, ); - return proxy.newResolutionSelector( + return ResolutionSelector( resolutionStrategy: resolutionStrategy, resolutionFilter: resolutionFilter, aspectRatioStrategy: aspectRatioStrategy, @@ -1671,10 +1649,11 @@ 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.lowerQualityOrHigherThan( + quality: videoQuality, + ); - return proxy.fromQualitySelector( + return QualitySelector.from( quality: videoQuality, fallbackStrategy: fallbackStrategy, ); @@ -1696,12 +1675,11 @@ class AndroidCameraCameraX extends CameraPlatform { ); } - final DisplayOrientedMeteringPointFactory meteringPointFactory = proxy - .newDisplayOrientedMeteringPointFactory( - width: 1.0, - height: 1.0, - cameraInfo: cameraInfo!, - ); + final meteringPointFactory = DisplayOrientedMeteringPointFactory( + width: 1.0, + height: 1.0, + cameraInfo: cameraInfo!, + ); meteringPoint = await meteringPointFactory.createPoint(point.x, point.y); } return _startFocusAndMeteringFor( @@ -1772,11 +1750,10 @@ 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 actionBuilder = FocusMeteringActionBuilder.withMode( + point: newMeteringPointInfos.first.$1, + mode: newMeteringPointInfos.first.$2, + ); if (disableAutoCancel) { unawaited(actionBuilder.disableAutoCancel()); } @@ -1812,11 +1789,10 @@ class AndroidCameraCameraX extends CameraPlatform { newMeteringPointInfos.add((meteringPoint, meteringMode)); - final FocusMeteringActionBuilder actionBuilder = proxy - .withModeFocusMeteringActionBuilder( - point: newMeteringPointInfos.first.$1, - mode: newMeteringPointInfos.first.$2, - ); + final actionBuilder = FocusMeteringActionBuilder.withMode( + point: newMeteringPointInfos.first.$1, + mode: newMeteringPointInfos.first.$2, + ); if (disableAutoCancel) { unawaited(actionBuilder.disableAutoCancel()); 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 ba884275d35..9d02880c339 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -9,14 +9,34 @@ import 'camerax_library.g.dart' as camerax; export 'camerax_library.g.dart' hide CameraInfo, LiveData, Observer; +/// Provides overrides for the constructors and static members of classes that +/// extend Dart proxy classes. +/// +/// Intended to be similar to [camerax.PigeonOverrides]. +/// +/// This is only intended to be used with unit tests to prevent errors from +/// making message calls in a unit test. +/// +/// See [GenericsPigeonOverrides.reset] to set all overrides back to null. +@visibleForTesting +final class GenericsPigeonOverrides { + /// Overrides [Observer.new]. + static Observer Function({ + required void Function(Observer pigeonInstance, T value) onChanged, + })? + observerNew; + + /// Sets all overridden ProxyApi class members to null. + static void reset() { + observerNew = null; + } +} + /// 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, -}) { +void setUpGenerics({BinaryMessenger? pigeonBinaryMessenger}) { camerax.LiveData.pigeon_setUpMessageHandlers( pigeon_newInstance: (camerax.LiveDataSupportedType type) { switch (type) { @@ -24,13 +44,11 @@ void setUpGenerics({ return LiveData.detached( type: type, pigeon_binaryMessenger: pigeonBinaryMessenger, - pigeon_instanceManager: pigeonInstanceManager, ); case camerax.LiveDataSupportedType.zoomState: return LiveData.detached( type: type, pigeon_binaryMessenger: pigeonBinaryMessenger, - pigeon_instanceManager: pigeonInstanceManager, ); } }, @@ -43,7 +61,6 @@ void setUpGenerics({ sensorRotationDegrees: sensorRotationDegrees, exposureState: exposureState, pigeon_binaryMessenger: pigeonBinaryMessenger, - pigeon_instanceManager: pigeonInstanceManager, ); }, ); @@ -87,8 +104,6 @@ class CameraInfo extends camerax.CameraInfo { required super.exposureState, // ignore: non_constant_identifier_names super.pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - super.pigeon_instanceManager, }) : super.pigeon_detached(); @override @@ -108,7 +123,6 @@ class CameraInfo extends camerax.CameraInfo { sensorRotationDegrees: sensorRotationDegrees, exposureState: exposureState, pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, ); } } @@ -130,8 +144,6 @@ class LiveData extends camerax.LiveData { required super.type, // ignore: non_constant_identifier_names super.pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - super.pigeon_instanceManager, }) : super.pigeon_detached(); @override @@ -150,7 +162,6 @@ class LiveData extends camerax.LiveData { return LiveData.detached( type: type, pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, ); } } @@ -160,12 +171,25 @@ class LiveData extends camerax.LiveData { /// See https://developer.android.com/reference/androidx/lifecycle/Observer. class Observer extends camerax.Observer { /// Constructs an [Observer]. - Observer({ + factory Observer({ + required void Function(Observer instance, T value) onChanged, + BinaryMessenger? binaryMessenger, + }) { + if (GenericsPigeonOverrides.observerNew != null) { + return GenericsPigeonOverrides.observerNew!(onChanged: onChanged); + } + return Observer.pigeonNew( + pigeon_binaryMessenger: binaryMessenger, + onChanged: onChanged, + ); + } + + /// Constructs an [Observer]. + @protected + Observer.pigeonNew({ 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_new( onChanged: (camerax.Observer instance, Object value) { @@ -181,8 +205,6 @@ class Observer extends camerax.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.pigeon_detached( onChanged: (camerax.Observer instance, Object value) { @@ -198,7 +220,6 @@ class Observer extends camerax.Observer { return Observer.detached( 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 index 9927f57103e..a0abb4cd345 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 // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v26.1.0), do not edit directly. +// Autogenerated from Pigeon (v26.1.2), 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 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 0b8da14861f..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart +++ /dev/null @@ -1,419 +0,0 @@ -// Copyright 2013 The Flutter Authors -// 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 - -import 'camerax_library.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]. - CameraXProxy({ - this.setUpGenericsProxy = setUpGenerics, - 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, - this.getNv21BufferImageProxyUtils = ImageProxyUtils.getNv21Buffer, - }); - - /// Handles adding support for generic classes. - final void Function({ - BinaryMessenger? pigeonBinaryMessenger, - PigeonInstanceManager? pigeonInstanceManager, - }) - 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, - CameraInfo? cameraInfoForFilter, - 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, - CameraIntegerRange? targetFpsRange, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) - newPreview; - - /// Constructs [VideoCapture]. - final VideoCapture Function({ - required VideoOutput videoOutput, - CameraIntegerRange? targetFpsRange, - 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, - 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, - CameraIntegerRange? targetFpsRange, - int? outputImageFormat, - 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]. - FocusMeteringActionBuilder Function({ - required MeteringPoint point, - required MeteringMode mode, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) - withModeFocusMeteringActionBuilder; - - /// Constructs [CaptureRequestOptions]. - CaptureRequestOptions Function({ - required Map options, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) - newCaptureRequestOptions; - - /// Constructs [Camera2CameraControl]. - 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]. - 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]. - CaptureRequestKey Function() controlAELockCaptureRequest; - - /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. - final CameraCharacteristicsKey Function() - infoSupportedHardwareLevelCameraCharacteristics; - - /// Calls to [CameraCharacteristics.sensorOrientation]. - final CameraCharacteristicsKey Function() - sensorOrientationCameraCharacteristics; - - /// Calls to [ImageProxyUtils.getNv21Buffer]. - final Future Function( - int imageWidth, - int imageHeight, - List planes, { - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) - getNv21BufferImageProxyUtils; - - 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/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 756c856eba0..c62db1899b4 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.25 +version: 0.6.26 environment: sdk: ^3.9.0 @@ -31,7 +31,7 @@ dev_dependencies: sdk: flutter leak_tracker_flutter_testing: any mockito: ^5.4.4 - pigeon: ^26.1.0 + pigeon: ^26.1.2 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 8c73428353a..16ffabfd0e8 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,10 +8,9 @@ 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_proxy.dart'; import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart' - show BinaryMessenger, DeviceOrientation, PlatformException, Uint8List; + show DeviceOrientation, PlatformException, Uint8List; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; @@ -30,7 +29,6 @@ import 'android_camera_camerax_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -66,6 +64,11 @@ import 'android_camera_camerax_test.mocks.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); + setUp(() { + PigeonOverrides.pigeon_reset(); + GenericsPigeonOverrides.reset(); + }); + /// Helper method for testing sending/receiving CameraErrorEvents. Future testCameraClosingObserver( AndroidCameraCameraX camera, @@ -74,9 +77,6 @@ void main() { ) async { final testCameraStateError = CameraStateStateError.pigeon_detached( code: CameraStateErrorCode.doNotDisturbModeEnabled, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), ); final Stream cameraClosingEventStream = camera .onCameraClosing(cameraId); @@ -94,9 +94,6 @@ void main() { CameraState.pigeon_detached( type: CameraStateType.closing, error: testCameraStateError, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), ), ); @@ -115,452 +112,270 @@ void main() { return cameraClosingEventSent && cameraErrorSent; } - /// CameraXProxy for testing functionality related to the configuration + /// Set up testing functionality related to the configuration /// of CameraX UseCases. - CameraXProxy getProxyForTestingUseCaseConfiguration( + void setUpOverridesForTestingUseCaseConfiguration( MockProcessCameraProvider mockProcessCameraProvider, { - ResolutionFilter Function({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - })? + ResolutionFilter Function({required CameraSize preferredSize})? createWithOnePreferredSizeResolutionFilter, - FallbackStrategy Function({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - })? + FallbackStrategy Function({required VideoQuality quality})? 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, Preview Function({ int? targetRotation, CameraIntegerRange? targetFpsRange, ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, })? newPreview, VideoCapture Function({ required VideoOutput videoOutput, CameraIntegerRange? targetFpsRange, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, })? withOutputVideoCapture, ImageAnalysis Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, ResolutionSelector? resolutionSelector, int? outputImageFormat, int? targetRotation, CameraIntegerRange? targetFpsRange, })? newImageAnalysis, - Analyzer Function({ - required void Function(Analyzer, ImageProxy) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - })? + Analyzer Function({required void Function(Analyzer, ImageProxy) analyze})? newAnalyzer, - Future Function( + Future Function( int imageWidth, int imageHeight, - List planes, { - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - })? + List planes, + )? getNv21BufferImageProxyUtils, }) { - late final CameraXProxy proxy; final AspectRatioStrategy ratio_4_3FallbackAutoStrategyAspectRatioStrategy = MockAspectRatioStrategy(); final ResolutionStrategy highestAvailableStrategyResolutionStrategy = 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, - CameraInfo? cameraInfoForFilter, - // 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 MockCameraSelector(); - }, - newPreview: - newPreview ?? - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final mockPreview = MockPreview(); - final testResolutionInfo = ResolutionInfo.pigeon_detached( - resolution: MockCameraSize(), - ); - when( - mockPreview.surfaceProducerHandlesCropAndRotation(), - ).thenAnswer((_) async => false); - when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); - when( - mockPreview.getResolutionInfo(), - ).thenAnswer((_) async => testResolutionInfo); - 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, - }) { - final mockImageCapture = MockImageCapture(); - when( - mockImageCapture.resolutionSelector, - ).thenReturn(resolutionSelector); - 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, - }) { - final mockRecorder = MockRecorder(); - when( - mockRecorder.getQualitySelector(), - ).thenAnswer((_) async => qualitySelector ?? MockQualitySelector()); - return mockRecorder; - }, - withOutputVideoCapture: - withOutputVideoCapture ?? - ({ - required VideoOutput videoOutput, - CameraIntegerRange? targetFpsRange, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockVideoCapture(); - }, - newImageAnalysis: - newImageAnalysis ?? - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - int? outputImageFormat, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final mockImageAnalysis = MockImageAnalysis(); - when( - mockImageAnalysis.resolutionSelector, - ).thenReturn(resolutionSelector); - 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, - }) { - final resolutionStrategy = MockResolutionStrategy(); - when( - resolutionStrategy.getBoundSize(), - ).thenAnswer((_) async => boundSize); - when( - resolutionStrategy.getFallbackRule(), - ).thenAnswer((_) async => fallbackRule); - return resolutionStrategy; - }, - newResolutionSelector: - ({ - 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(); - when(mockResolutionSelector.getAspectRatioStrategy()).thenAnswer( - (_) async => - aspectRatioStrategy ?? - proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), - ); - when( - mockResolutionSelector.resolutionStrategy, - ).thenReturn(resolutionStrategy); - when( - mockResolutionSelector.resolutionFilter, - ).thenReturn(resolutionFilter); - return mockResolutionSelector; - }, - fromQualitySelector: - 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 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, - }) { - final mockAspectRatioStrategy = MockAspectRatioStrategy(); - 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(); - }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final camera2cameraInfo = MockCamera2CameraInfo(); - when( - camera2cameraInfo.getCameraCharacteristic(any), - ).thenAnswer((_) async => 90); - 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 CameraSize.pigeon_detached( - width: width, - height: height, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - sensorOrientationCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - lowerQualityOrHigherThanFallbackStrategy: - lowerQualityOrHigherThanFallbackStrategy ?? - ({ - 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, - lowerQualityThanFallbackStrategy: - ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, - newAnalyzer: - 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(); - }, - getNv21BufferImageProxyUtils: - getNv21BufferImageProxyUtils ?? - ( - int imageWidth, - int imageHeight, - List planes, { - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Future.value(Uint8List(0)); - }, - ); + PigeonOverrides.processCameraProvider_getInstance = () async { + return mockProcessCameraProvider; + }; + PigeonOverrides.cameraSelector_new = + ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } - return proxy; + return MockCameraSelector(); + }; + PigeonOverrides.preview_new = + newPreview ?? + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + ResolutionSelector? resolutionSelector, + }) { + final mockPreview = MockPreview(); + final testResolutionInfo = ResolutionInfo.pigeon_detached( + resolution: MockCameraSize(), + ); + when( + mockPreview.surfaceProducerHandlesCropAndRotation(), + ).thenAnswer((_) async => false); + when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); + when( + mockPreview.getResolutionInfo(), + ).thenAnswer((_) async => testResolutionInfo); + return mockPreview; + }; + PigeonOverrides.imageCapture_new = + ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + }) { + final mockImageCapture = MockImageCapture(); + when( + mockImageCapture.resolutionSelector, + ).thenReturn(resolutionSelector); + return mockImageCapture; + }; + PigeonOverrides.recorder_new = + ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) { + final mockRecorder = MockRecorder(); + when( + mockRecorder.getQualitySelector(), + ).thenAnswer((_) async => qualitySelector ?? MockQualitySelector()); + return mockRecorder; + }; + PigeonOverrides.videoCapture_withOutput = + withOutputVideoCapture ?? + ({ + required VideoOutput videoOutput, + CameraIntegerRange? targetFpsRange, + }) { + return MockVideoCapture(); + }; + PigeonOverrides.imageAnalysis_new = + newImageAnalysis ?? + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + int? outputImageFormat, + ResolutionSelector? resolutionSelector, + }) { + final mockImageAnalysis = MockImageAnalysis(); + when( + mockImageAnalysis.resolutionSelector, + ).thenReturn(resolutionSelector); + return mockImageAnalysis; + }; + PigeonOverrides.resolutionStrategy_new = + ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + }) { + final resolutionStrategy = MockResolutionStrategy(); + when( + resolutionStrategy.getBoundSize(), + ).thenAnswer((_) async => boundSize); + when( + resolutionStrategy.getFallbackRule(), + ).thenAnswer((_) async => fallbackRule); + return resolutionStrategy; + }; + PigeonOverrides.resolutionSelector_new = + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) { + final mockResolutionSelector = MockResolutionSelector(); + when(mockResolutionSelector.getAspectRatioStrategy()).thenAnswer( + (_) async => + aspectRatioStrategy ?? + AspectRatioStrategy.ratio_4_3FallbackAutoStrategy, + ); + when( + mockResolutionSelector.resolutionStrategy, + ).thenReturn(resolutionStrategy); + when( + mockResolutionSelector.resolutionFilter, + ).thenReturn(resolutionFilter); + return mockResolutionSelector; + }; + PigeonOverrides.qualitySelector_from = + fromQualitySelector ?? + ({required VideoQuality quality, FallbackStrategy? fallbackStrategy}) { + return MockQualitySelector(); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + return MockSystemServicesManager(); + }; + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final manager = MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }; + PigeonOverrides.aspectRatioStrategy_new = + ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + }) { + final mockAspectRatioStrategy = MockAspectRatioStrategy(); + when( + mockAspectRatioStrategy.getFallbackRule(), + ).thenAnswer((_) async => fallbackRule); + when( + mockAspectRatioStrategy.getPreferredAspectRatio(), + ).thenAnswer((_) async => preferredAspectRatio); + return mockAspectRatioStrategy; + }; + PigeonOverrides.resolutionFilter_createWithOnePreferredSize = + createWithOnePreferredSizeResolutionFilter ?? + ({required CameraSize preferredSize}) => MockResolutionFilter(); + PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) { + final camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return camera2cameraInfo; + }; + PigeonOverrides.cameraSize_new = + ({required int width, required int height}) { + return CameraSize.pigeon_detached(width: width, height: height); + }; + PigeonOverrides.cameraCharacteristics_sensorOrientation = + MockCameraCharacteristicsKey(); + PigeonOverrides.fallbackStrategy_lowerQualityOrHigherThan = + lowerQualityOrHigherThanFallbackStrategy ?? + ({required VideoQuality quality}) { + return MockFallbackStrategy(); + }; + PigeonOverrides.resolutionStrategy_highestAvailableStrategy = + highestAvailableStrategyResolutionStrategy; + PigeonOverrides.aspectRatioStrategy_ratio_4_3FallbackAutoStrategy = + ratio_4_3FallbackAutoStrategyAspectRatioStrategy; + PigeonOverrides.fallbackStrategy_lowerQualityThan = + ({required VideoQuality quality}) { + return MockFallbackStrategy(); + }; + PigeonOverrides.analyzer_new = + newAnalyzer ?? + ({required void Function(Analyzer, ImageProxy) analyze}) { + return MockAnalyzer(); + }; + PigeonOverrides.imageProxyUtils_getNv21Buffer = + getNv21BufferImageProxyUtils ?? + (int imageWidth, int imageHeight, List planes) { + return Future.value(Uint8List(0)); + }; } - /// CameraXProxy for testing exposure and focus related controls. + /// Set up overrides 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({ + void setUpOverridesForExposureAndFocus({ 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 dynamic cameraInfo, required double width, required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, })? newDisplayOrientedMeteringPointFactory, - }) => CameraXProxy( - newDisplayOrientedMeteringPointFactory: + }) { + PigeonOverrides.displayOrientedMeteringPointFactory_new = newDisplayOrientedMeteringPointFactory ?? ({ - required CameraInfo cameraInfo, + required dynamic cameraInfo, required double width, required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { final mockFactory = MockDisplayOrientedMeteringPointFactory(); when(mockFactory.createPoint(any, any)).thenAnswer( @@ -577,20 +392,10 @@ void main() { ), ); return mockFactory; - }, - withModeFocusMeteringActionBuilder: + }; + PigeonOverrides.focusMeteringActionBuilder_withMode = withModeFocusMeteringActionBuilder ?? - ({ - required MeteringPoint point, - required MeteringMode mode, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); + ({required MeteringPoint point, required MeteringMode mode}) { final mockBuilder = MockFocusMeteringActionBuilder(); var disableAutoCancelCalled = false; when(mockBuilder.disableAutoCancel()).thenAnswer((_) async { @@ -634,74 +439,51 @@ void main() { meteringPointsAf: meteringPointsAf, meteringPointsAwb: meteringPointsAwb, isAutoCancelEnabled: !disableAutoCancelCalled, - pigeon_instanceManager: testInstanceManager, ), ); return mockBuilder; - }, - ); + }; + } - /// CameraXProxy for testing setting focus and exposure points. + /// Set up overrides 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( + void setUpOverridesForSettingFocusandExposurePoints( CameraControl cameraControlForComparison, Camera2CameraControl camera2cameraControl, { 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 dynamic cameraInfo, required double width, required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, })? newDisplayOrientedMeteringPointFactory, }) { - final CameraXProxy proxy = getProxyForExposureAndFocus(); + setUpOverridesForExposureAndFocus(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); if (withModeFocusMeteringActionBuilder != null) { - proxy.withModeFocusMeteringActionBuilder = + PigeonOverrides.focusMeteringActionBuilder_withMode = withModeFocusMeteringActionBuilder; } if (newDisplayOrientedMeteringPointFactory != null) { - proxy.newDisplayOrientedMeteringPointFactory = + PigeonOverrides.displayOrientedMeteringPointFactory_new = 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.newCaptureRequestOptions = - ({ - required Map options, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { + + PigeonOverrides.camera2CameraControl_from = + ({required CameraControl cameraControl}) => + cameraControl == cameraControlForComparison + ? camera2cameraControl + : Camera2CameraControl.pigeon_detached(); + + PigeonOverrides.captureRequestOptions_new = + ({required Map options}) { final mockCaptureRequestOptions = MockCaptureRequestOptions(); options.forEach((CaptureRequestKey key, Object? value) { when( @@ -710,12 +492,8 @@ void main() { }); return mockCaptureRequestOptions; }; - final controlAeLock = CaptureRequestKey.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - proxy.controlAELockCaptureRequest = () => controlAeLock; - - return proxy; + PigeonOverrides.captureRequest_controlAELock = + CaptureRequestKey.pigeon_detached(); } test( @@ -744,52 +522,27 @@ void main() { final mockBackCameraInfo = MockCameraInfo(); // 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, - CameraInfo? cameraInfoForFilter, - // 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: - } + PigeonOverrides.processCameraProvider_getInstance = () async => + mockProcessCameraProvider; + PigeonOverrides.cameraSelector_new = + ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { + 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(); - }, - ); + return mockBackCameraSelector; + }; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + return MockSystemServicesManager(); + }; // Mock calls to native platform when(mockProcessCameraProvider.getAvailableCameraInfos()).thenAnswer( @@ -861,244 +614,146 @@ void main() { var cameraPermissionsRequested = false; var startedListeningForDeviceOrientationChanges = false; - 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, - CameraInfo? cameraInfoForFilter, - // 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: - } + PigeonOverrides.processCameraProvider_getInstance = () async { + return mockProcessCameraProvider; + }; + PigeonOverrides.cameraSelector_new = + ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } - return mockBackCameraSelector; - }, - newPreview: - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - 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, - CameraIntegerRange? targetFpsRange, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockVideoCapture; - }, - newImageAnalysis: - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - int? outputImageFormat, - 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 null; - }); - 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 manager = MockDeviceOrientationManager(); - when( - manager.startListeningForDeviceOrientationChange(), - ).thenAnswer((_) async { + return mockBackCameraSelector; + }; + PigeonOverrides.preview_new = + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + ResolutionSelector? resolutionSelector, + }) { + return mockPreview; + }; + PigeonOverrides.imageCapture_new = + ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + }) { + return mockImageCapture; + }; + PigeonOverrides.recorder_new = + ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) { + return mockRecorder; + }; + PigeonOverrides.videoCapture_withOutput = + ({ + required VideoOutput videoOutput, + CameraIntegerRange? targetFpsRange, + }) { + return mockVideoCapture; + }; + PigeonOverrides.imageAnalysis_new = + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + int? outputImageFormat, + ResolutionSelector? resolutionSelector, + }) { + return mockImageAnalysis; + }; + PigeonOverrides.resolutionStrategy_new = + ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + }) { + return MockResolutionStrategy(); + }; + PigeonOverrides.resolutionSelector_new = + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) { + return MockResolutionSelector(); + }; + PigeonOverrides.qualitySelector_from = + ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + }) { + return MockQualitySelector(); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + when( + mockSystemServicesManager.requestCameraPermissions(any), + ).thenAnswer((_) async { + cameraPermissionsRequested = true; + return null; + }); + return mockSystemServicesManager; + }; + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final 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 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; + }; + PigeonOverrides.aspectRatioStrategy_new = + ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + }) { + return MockAspectRatioStrategy(); + }; + PigeonOverrides.resolutionFilter_createWithOnePreferredSize = + ({required CameraSize preferredSize}) { + return MockResolutionFilter(); + }; + PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) { + final camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic( + mockCameraCharacteristicsKey, + ), + ).thenAnswer((_) async => testSensorOrientation); + return camera2cameraInfo; + }; + PigeonOverrides.cameraSize_new = + ({required int width, required int height}) { + return MockCameraSize(); + }; + PigeonOverrides.cameraCharacteristics_sensorOrientation = + mockCameraCharacteristicsKey; + PigeonOverrides.fallbackStrategy_lowerQualityOrHigherThan = + ({required VideoQuality quality}) { + return MockFallbackStrategy(); + }; camera.processCameraProvider = mockProcessCameraProvider; PigeonOverrides.cameraIntegerRange_new = @@ -1184,9 +839,7 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. - camera.proxy = getProxyForTestingUseCaseConfiguration( - mockProcessCameraProvider, - ); + setUpOverridesForTestingUseCaseConfiguration(mockProcessCameraProvider); // Test non-null resolution presets. for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { @@ -1198,39 +851,32 @@ void main() { await camera.initializeCamera(flutterSurfaceTextureId); late final CameraSize? expectedBoundSize; - final 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; @@ -1285,15 +931,15 @@ void main() { expect( camera.preview!.resolutionSelector!.resolutionStrategy, - equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), + equals(ResolutionStrategy.highestAvailableStrategy), ); expect( camera.imageCapture!.resolutionSelector!.resolutionStrategy, - equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), + equals(ResolutionStrategy.highestAvailableStrategy), ); expect( camera.imageAnalysis!.resolutionSelector!.resolutionStrategy, - equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), + equals(ResolutionStrategy.highestAvailableStrategy), ); // Test null case. @@ -1331,16 +977,10 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. CameraSize? lastSetPreferredSize; - camera.proxy = getProxyForTestingUseCaseConfiguration( + setUpOverridesForTestingUseCaseConfiguration( mockProcessCameraProvider, createWithOnePreferredSizeResolutionFilter: - ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { + ({required CameraSize preferredSize}) { lastSetPreferredSize = preferredSize; return MockResolutionFilter(); }, @@ -1365,39 +1005,32 @@ void main() { await camera.initializeCamera(flutterSurfaceTextureId); CameraSize? expectedPreferredResolution; - final 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; @@ -1489,9 +1122,7 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. - camera.proxy = getProxyForTestingUseCaseConfiguration( - mockProcessCameraProvider, - ); + setUpOverridesForTestingUseCaseConfiguration(mockProcessCameraProvider); when( mockProcessCameraProvider.bindToLifecycle(any, any), ).thenAnswer((_) async => mockCamera); @@ -1530,23 +1161,17 @@ void main() { if (expectedAspectRatio == null) { expect( await camera.preview!.resolutionSelector!.getAspectRatioStrategy(), - equals( - camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), - ), + equals(AspectRatioStrategy.ratio_4_3FallbackAutoStrategy), ); expect( await camera.imageCapture!.resolutionSelector! .getAspectRatioStrategy(), - equals( - camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), - ), + equals(AspectRatioStrategy.ratio_4_3FallbackAutoStrategy), ); expect( await camera.imageAnalysis!.resolutionSelector! .getAspectRatioStrategy(), - equals( - camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), - ), + equals(AspectRatioStrategy.ratio_4_3FallbackAutoStrategy), ); continue; } @@ -1634,254 +1259,156 @@ void main() { // 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, - CameraInfo? cameraInfoForFilter, - // 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, - CameraIntegerRange? targetFpsRange, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final testResolutionInfo = ResolutionInfo.pigeon_detached( - resolution: MockCameraSize(), - ); - when( - mockPreview.getResolutionInfo(), - ).thenAnswer((_) async => testResolutionInfo); - 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, - CameraIntegerRange? targetFpsRange, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockVideoCapture; - }, - newImageAnalysis: - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - int? outputImageFormat, - 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 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); - - camera.processCameraProvider = mockProcessCameraProvider; - PigeonOverrides.cameraIntegerRange_new = - CameraIntegerRange.pigeon_detached; + PigeonOverrides.processCameraProvider_getInstance = () async { + return mockProcessCameraProvider; + }; + PigeonOverrides.cameraSelector_new = + ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } + + return mockBackCameraSelector; + }; + PigeonOverrides.preview_new = + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + ResolutionSelector? resolutionSelector, + }) { + final testResolutionInfo = ResolutionInfo.pigeon_detached( + resolution: MockCameraSize(), + ); + when( + mockPreview.getResolutionInfo(), + ).thenAnswer((_) async => testResolutionInfo); + return mockPreview; + }; + PigeonOverrides.imageCapture_new = + ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + }) { + return mockImageCapture; + }; + PigeonOverrides.recorder_new = + ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) { + return mockRecorder; + }; + PigeonOverrides.videoCapture_withOutput = + ({ + required VideoOutput videoOutput, + CameraIntegerRange? targetFpsRange, + }) { + return mockVideoCapture; + }; + PigeonOverrides.imageAnalysis_new = + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + int? outputImageFormat, + ResolutionSelector? resolutionSelector, + }) { + return mockImageAnalysis; + }; + PigeonOverrides.resolutionStrategy_new = + ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + }) { + return MockResolutionStrategy(); + }; + PigeonOverrides.resolutionSelector_new = + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) { + return MockResolutionSelector(); + }; + PigeonOverrides.qualitySelector_from = + ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + }) { + return MockQualitySelector(); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + return MockSystemServicesManager(); + }; + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final manager = MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }; + PigeonOverrides.aspectRatioStrategy_new = + ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + }) { + return MockAspectRatioStrategy(); + }; + PigeonOverrides.resolutionFilter_createWithOnePreferredSize = + ({required CameraSize preferredSize}) { + return MockResolutionFilter(); + }; + PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) { + when( + mockCamera2CameraInfo.getCameraCharacteristic( + mockCameraCharacteristicsKey, + ), + ).thenAnswer((_) async => testSensorOrientation); + return mockCamera2CameraInfo; + }; + PigeonOverrides.cameraSize_new = + ({required int width, required int height}) { + return MockCameraSize(); + }; + PigeonOverrides.cameraCharacteristics_sensorOrientation = + mockCameraCharacteristicsKey; + PigeonOverrides.fallbackStrategy_lowerQualityOrHigherThan = + ({required VideoQuality quality}) { + 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); + + camera.processCameraProvider = mockProcessCameraProvider; + PigeonOverrides.cameraIntegerRange_new = + CameraIntegerRange.pigeon_detached; final int flutterSurfaceTextureId = await camera.createCameraWithSettings( testCameraDescription, @@ -1941,16 +1468,10 @@ void main() { FallbackStrategy? setFallbackStrategy; final mockFallbackStrategy = MockFallbackStrategy(); final mockQualitySelector = MockQualitySelector(); - camera.proxy = getProxyForTestingUseCaseConfiguration( + setUpOverridesForTestingUseCaseConfiguration( mockProcessCameraProvider, lowerQualityOrHigherThanFallbackStrategy: - ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { + ({required VideoQuality quality}) { fallbackStrategyVideoQuality = quality; return mockFallbackStrategy; }, @@ -1958,10 +1479,6 @@ void main() { ({ 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; @@ -2046,17 +1563,13 @@ void main() { // 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 = getProxyForTestingUseCaseConfiguration( + setUpOverridesForTestingUseCaseConfiguration( mockProcessCameraProvider, newPreview: ({ int? targetRotation, CameraIntegerRange? targetFpsRange, ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { final mockPreview = MockPreview(); when( @@ -2123,14 +1636,10 @@ void main() { CameraIntegerRange? targetVideoCaptureFpsRange; CameraIntegerRange? targetImageAnalysisFpsRange; - camera.proxy = getProxyForTestingUseCaseConfiguration( + setUpOverridesForTestingUseCaseConfiguration( mockProcessCameraProvider, newPreview: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, ResolutionSelector? resolutionSelector, CameraIntegerRange? targetFpsRange, int? targetRotation, @@ -2147,10 +1656,6 @@ void main() { }, withOutputVideoCapture: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, CameraIntegerRange? targetFpsRange, required VideoOutput videoOutput, }) { @@ -2160,10 +1665,6 @@ void main() { newImageAnalysis: ({ int? outputImageFormat, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, ResolutionSelector? resolutionSelector, CameraIntegerRange? targetFpsRange, int? targetRotation, @@ -2241,309 +1742,224 @@ void main() { // Tell plugin to create mock/detached objects and stub method calls for the // testing of availableCameras and createCamera. - 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, - }) { - return Future.value( - mockProcessCameraProvider, - ); - }, - newCameraSelector: - ({ - LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // 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: - } - if (cameraInfoForFilter == mockBackCameraInfoOne) { - return mockChosenCameraInfoCameraSelector; - } - - 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(); - }, - newPreview: - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - 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, - CameraIntegerRange? targetFpsRange, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockVideoCapture; - }, - newImageAnalysis: - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - int? outputImageFormat, - 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: (_) {}, - ), - ); - }, - newDeviceOrientationManager: - ({ - required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final 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(); - }, - ); - - // Mock calls to native platform - when(mockProcessCameraProvider.getAvailableCameraInfos()).thenAnswer(( - _, - ) async { - mockCameraInfosList = [ - mockBackCameraInfoOne, - mockBackCameraInfoTwo, - mockFrontCameraInfo, - ]; - return [ - mockBackCameraInfoOne, - mockBackCameraInfoTwo, - mockFrontCameraInfo, - ]; - }); - when( - mockBackCameraSelector.filter([mockBackCameraInfoOne]), - ).thenAnswer((_) async => [mockBackCameraInfoOne]); - when( - mockBackCameraSelector.filter([mockBackCameraInfoTwo]), - ).thenAnswer((_) async => [mockBackCameraInfoTwo]); - when( - mockBackCameraSelector.filter([mockFrontCameraInfo]), - ).thenAnswer((_) async => []); - when( - mockFrontCameraSelector.filter([mockBackCameraInfoOne]), - ).thenAnswer((_) async => []); - when( - mockFrontCameraSelector.filter([mockBackCameraInfoTwo]), - ).thenAnswer((_) async => []); - when( - mockFrontCameraSelector.filter([mockFrontCameraInfo]), - ).thenAnswer((_) async => [mockFrontCameraInfo]); - - final List cameraDescriptions = await camera - .availableCameras(); - expect(cameraDescriptions.length, returnData.length); - - for (var i = 0; i < returnData.length; i++) { - final Map savedData = - (returnData[i] as Map).cast(); - - cameraNameToInfos[savedData['name']! as String] = - mockCameraInfosList[i]; - final cameraDescription = CameraDescription( - name: savedData['name']! as String, - lensDirection: (savedData['lensFacing']! as String) == 'front' - ? CameraLensDirection.front - : CameraLensDirection.back, - sensorOrientation: savedData['sensorOrientation']! as int, - ); - expect(cameraDescriptions[i], cameraDescription); - expect(cameraNameToInfos.containsKey(cameraDescription.name), isTrue); - } - - when( - mockProcessCameraProvider.bindToLifecycle( - mockChosenCameraInfoCameraSelector, - [mockPreview, mockImageCapture, mockImageAnalysis], - ), - ).thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when( - mockCameraInfo.getCameraState(), - ).thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera.cameraControl).thenAnswer((_) => mockCameraControl); + PigeonOverrides.processCameraProvider_getInstance = () { + return Future.value(mockProcessCameraProvider); + }; + PigeonOverrides.cameraSelector_new = + ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { + switch (requireLensFacing) { + case LensFacing.front: + return mockFrontCameraSelector; + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } + if (cameraInfoForFilter == mockBackCameraInfoOne) { + return mockChosenCameraInfoCameraSelector; + } + + return mockBackCameraSelector; + }; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + return MockSystemServicesManager(); + }; + PigeonOverrides.preview_new = + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + ResolutionSelector? resolutionSelector, + }) { + return mockPreview; + }; + PigeonOverrides.imageCapture_new = + ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + }) { + return mockImageCapture; + }; + PigeonOverrides.recorder_new = + ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) { + return mockRecorder; + }; + PigeonOverrides.recorder_new = + ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) { + return mockRecorder; + }; + PigeonOverrides.videoCapture_withOutput = + ({ + required VideoOutput videoOutput, + CameraIntegerRange? targetFpsRange, + }) { + return mockVideoCapture; + }; + PigeonOverrides.imageAnalysis_new = + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + int? outputImageFormat, + ResolutionSelector? resolutionSelector, + }) { + return mockImageAnalysis; + }; + PigeonOverrides.resolutionStrategy_new = + ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + }) { + return MockResolutionStrategy(); + }; + PigeonOverrides.resolutionSelector_new = + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) { + return MockResolutionSelector(); + }; + PigeonOverrides.resolutionSelector_new = + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) { + return MockResolutionSelector(); + }; + PigeonOverrides.qualitySelector_from = + ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + }) { + return MockQualitySelector(); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final manager = MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }; + PigeonOverrides.aspectRatioStrategy_new = + ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + }) { + return MockAspectRatioStrategy(); + }; + PigeonOverrides.resolutionFilter_createWithOnePreferredSize = + ({required CameraSize preferredSize}) { + return MockResolutionFilter(); + }; + PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) { + when( + mockCamera2CameraInfo.getCameraCharacteristic( + mockCameraCharacteristicsKey, + ), + ).thenAnswer((_) async => testSensorOrientation); + return mockCamera2CameraInfo; + }; + PigeonOverrides.cameraSize_new = + ({required int width, required int height}) { + return MockCameraSize(); + }; + PigeonOverrides.cameraCharacteristics_sensorOrientation = + mockCameraCharacteristicsKey; + PigeonOverrides.fallbackStrategy_lowerQualityOrHigherThan = + ({required VideoQuality quality}) { + return MockFallbackStrategy(); + }; + PigeonOverrides.cameraIntegerRange_new = + ({required int lower, required int upper}) { + return CameraIntegerRange.pigeon_detached(lower: 0, upper: 0); + }; + + // Mock calls to native platform + when(mockProcessCameraProvider.getAvailableCameraInfos()).thenAnswer(( + _, + ) async { + mockCameraInfosList = [ + mockBackCameraInfoOne, + mockBackCameraInfoTwo, + mockFrontCameraInfo, + ]; + return [ + mockBackCameraInfoOne, + mockBackCameraInfoTwo, + mockFrontCameraInfo, + ]; + }); + when( + mockBackCameraSelector.filter([mockBackCameraInfoOne]), + ).thenAnswer((_) async => [mockBackCameraInfoOne]); + when( + mockBackCameraSelector.filter([mockBackCameraInfoTwo]), + ).thenAnswer((_) async => [mockBackCameraInfoTwo]); + when( + mockBackCameraSelector.filter([mockFrontCameraInfo]), + ).thenAnswer((_) async => []); + when( + mockFrontCameraSelector.filter([mockBackCameraInfoOne]), + ).thenAnswer((_) async => []); + when( + mockFrontCameraSelector.filter([mockBackCameraInfoTwo]), + ).thenAnswer((_) async => []); + when( + mockFrontCameraSelector.filter([mockFrontCameraInfo]), + ).thenAnswer((_) async => [mockFrontCameraInfo]); + + final List cameraDescriptions = await camera + .availableCameras(); + expect(cameraDescriptions.length, returnData.length); + + for (var i = 0; i < returnData.length; i++) { + final Map savedData = + (returnData[i] as Map).cast(); + + cameraNameToInfos[savedData['name']! as String] = + mockCameraInfosList[i]; + final cameraDescription = CameraDescription( + name: savedData['name']! as String, + lensDirection: (savedData['lensFacing']! as String) == 'front' + ? CameraLensDirection.front + : CameraLensDirection.back, + sensorOrientation: savedData['sensorOrientation']! as int, + ); + expect(cameraDescriptions[i], cameraDescription); + expect(cameraNameToInfos.containsKey(cameraDescription.name), isTrue); + } + + when( + mockProcessCameraProvider.bindToLifecycle( + mockChosenCameraInfoCameraSelector, + [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; @@ -2621,14 +2037,10 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. - camera.proxy = getProxyForTestingUseCaseConfiguration( + setUpOverridesForTestingUseCaseConfiguration( mockProcessCameraProvider, newPreview: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, ResolutionSelector? resolutionSelector, int? targetRotation, CameraIntegerRange? targetFpsRange, @@ -2708,14 +2120,10 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. int? imageAnalysisOutputImageFormat; - camera.proxy = getProxyForTestingUseCaseConfiguration( + setUpOverridesForTestingUseCaseConfiguration( mockProcessCameraProvider, newImageAnalysis: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, ResolutionSelector? resolutionSelector, int? targetRotation, CameraIntegerRange? targetFpsRange, @@ -2726,10 +2134,6 @@ void main() { }, newPreview: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, ResolutionSelector? resolutionSelector, int? targetRotation, CameraIntegerRange? targetFpsRange, @@ -2766,16 +2170,12 @@ void main() { const resolutionWidth = 350; const resolutionHeight = 750; final Camera mockCamera = MockCamera(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); + final 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. @@ -2789,197 +2189,104 @@ 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), - newCameraSelector: - ({ - LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - switch (requireLensFacing) { - case LensFacing.front: - return mockFrontCameraSelector; - case _: - return mockBackCameraSelector; - } - }, - newPreview: - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - 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, - CameraIntegerRange? targetFpsRange, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockVideoCapture(), - newImageAnalysis: - ({ - int? targetRotation, - CameraIntegerRange? targetFpsRange, - int? outputImageFormat, - 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 - 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, - }) => 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 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, - }) => 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(); - when( - mockCamera2CameraInfo.getCameraCharacteristic(any), - ).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(), - ); + PigeonOverrides.processCameraProvider_getInstance = () => + Future.value(mockProcessCameraProvider); + PigeonOverrides.cameraSelector_new = + ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { + switch (requireLensFacing) { + case LensFacing.front: + return mockFrontCameraSelector; + case _: + return mockBackCameraSelector; + } + }; + PigeonOverrides.preview_new = + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + ResolutionSelector? resolutionSelector, + }) => mockPreview; + PigeonOverrides.imageCapture_new = + ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + }) => mockImageCapture; + PigeonOverrides.recorder_new = + ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) => MockRecorder(); + PigeonOverrides.videoCapture_withOutput = + ({ + required VideoOutput videoOutput, + CameraIntegerRange? targetFpsRange, + }) => MockVideoCapture(); + PigeonOverrides.imageAnalysis_new = + ({ + int? targetRotation, + CameraIntegerRange? targetFpsRange, + int? outputImageFormat, + ResolutionSelector? resolutionSelector, + }) => mockImageAnalysis; + PigeonOverrides.resolutionStrategy_new = + ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + }) => MockResolutionStrategy(); + PigeonOverrides.resolutionSelector_new = + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) => MockResolutionSelector(); + PigeonOverrides.fallbackStrategy_lowerQualityOrHigherThan = + ({required VideoQuality quality}) => MockFallbackStrategy(); + PigeonOverrides.qualitySelector_from = + ({required VideoQuality quality, FallbackStrategy? fallbackStrategy}) => + MockQualitySelector(); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) => MockSystemServicesManager(); + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final manager = MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }; + PigeonOverrides.aspectRatioStrategy_new = + ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + }) => MockAspectRatioStrategy(); + PigeonOverrides.resolutionFilter_createWithOnePreferredSize = + ({required CameraSize preferredSize}) => MockResolutionFilter(); + PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) { + final mockCamera2CameraInfo = MockCamera2CameraInfo(); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return mockCamera2CameraInfo; + }; + PigeonOverrides.cameraSize_new = + ({required int width, required int height}) => MockCameraSize(); + PigeonOverrides.cameraCharacteristics_sensorOrientation = + MockCameraCharacteristicsKey(); + PigeonOverrides.cameraIntegerRange_new = + ({required int lower, required int upper}) { + return CameraIntegerRange.pigeon_detached(lower: 0, upper: 0); + }; final testCameraInitializedEvent = CameraInitializedEvent( cameraId, @@ -3036,27 +2343,20 @@ void main() { () async { var stoppedListeningForDeviceOrientationChange = false; final camera = AndroidCameraCameraX(); - 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(); - when( - mockDeviceOrientationManager - .stopListeningForDeviceOrientationChange(), - ).thenAnswer((_) async { - stoppedListeningForDeviceOrientationChange = true; - }); - return mockDeviceOrientationManager; - }, - ); + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final mockDeviceOrientationManager = MockDeviceOrientationManager(); + when( + mockDeviceOrientationManager + .stopListeningForDeviceOrientationChange(), + ).thenAnswer((_) async { + stoppedListeningForDeviceOrientationChange = true; + }); + return mockDeviceOrientationManager; + }; camera.preview = MockPreview(); camera.processCameraProvider = MockProcessCameraProvider(); @@ -3129,23 +2429,16 @@ void main() { ); final 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(); - when( - mockSystemServicesManager.onCameraError, - ).thenReturn(onCameraError); - return mockSystemServicesManager; - }, - ); + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.onCameraError, + ).thenReturn(onCameraError); + return mockSystemServicesManager; + }; camera.systemServicesManager.onCameraError( camera.systemServicesManager, @@ -3176,24 +2469,17 @@ void main() { 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(); - when( - mockDeviceOrientationManager.onDeviceOrientationChanged, - ).thenReturn(onDeviceOrientationChanged); - return mockDeviceOrientationManager; - }, - ); + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final mockDeviceOrientationManager = MockDeviceOrientationManager(); + when( + mockDeviceOrientationManager.onDeviceOrientationChanged, + ).thenReturn(onDeviceOrientationChanged); + return mockDeviceOrientationManager; + }; camera.deviceOrientationManager.onDeviceOrientationChanged( camera.deviceOrientationManager, @@ -3301,23 +2587,10 @@ void main() { // 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: (_) {}, - ), - ); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; when( mockProcessCameraProvider.bindToLifecycle( @@ -3406,71 +2679,35 @@ void main() { // Tell plugin to create detached Observer when camera info updated. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) + onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 17; @@ -3509,11 +2746,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -3572,71 +2805,35 @@ void main() { // Tell plugin to create detached Observer when camera info updated. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) + onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 17; @@ -3674,11 +2871,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -3738,81 +2931,39 @@ void main() { // Tell plugin to create detached Analyzer for testing. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) + onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) { + return MockAnalyzer(); + }; const cameraId = 17; final imageDataCompleter = Completer(); @@ -3850,11 +3001,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing(videoCaptureOptions); @@ -3891,89 +3038,49 @@ void main() { // Tell plugin to mock call to get current video orientation and mock Camera2CameraInfo retrieval. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - 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(); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => cameraInfo == initialCameraInfo + ? mockCamera2CameraInfo + : MockCamera2CameraInfo(); + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) + onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final mockDeviceOrientationManager = + MockDeviceOrientationManager(); + when( + mockDeviceOrientationManager.getDefaultDisplayRotation(), + ).thenAnswer((_) async => defaultTargetRotation); + return mockDeviceOrientationManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 87; @@ -4002,11 +3109,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); // Orientation is unlocked and plugin does not need to set default target @@ -4017,11 +3120,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); // Orientation is locked and plugin does not need to set default target @@ -4033,11 +3132,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); // Orientation is locked and plugin does need to set default target @@ -4050,11 +3145,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); // Orientation is unlocked and plugin does need to set default target @@ -4111,11 +3202,7 @@ void main() { // Simulate video recording being finalized so stopVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventFinalize.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventFinalize.pigeon_detached(), ); final XFile file = await camera.stopVideoRecording(0); @@ -4160,11 +3247,7 @@ void main() { await expectLater(() async { // Simulate video recording being finalized so stopVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventFinalize.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventFinalize.pigeon_detached(), ); await camera.stopVideoRecording(0); }, throwsA(isA())); @@ -4187,11 +3270,7 @@ void main() { // Simulate video recording being finalized so stopVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventFinalize.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventFinalize.pigeon_detached(), ); final XFile file = await camera.stopVideoRecording(0); @@ -4224,11 +3303,7 @@ void main() { // Simulate video recording being finalized so stopVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventFinalize.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventFinalize.pigeon_detached(), ); await camera.stopVideoRecording(90); @@ -4279,184 +3354,115 @@ void main() { const outputPath = 'file/output.mp4'; - camera.proxy = CameraXProxy( - newPreview: - ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - ResolutionSelector? resolutionSelector, - int? targetRotation, - CameraIntegerRange? targetFpsRange, - }) { - when( - mockPreview.setSurfaceProvider(any), - ).thenAnswer((_) async => 19); - final testResolutionInfo = ResolutionInfo.pigeon_detached( - resolution: MockCameraSize(), - ); - when( - mockPreview.surfaceProducerHandlesCropAndRotation(), - ).thenAnswer((_) async => false); - when( - mockPreview.resolutionSelector, - ).thenReturn(resolutionSelector); - when( - mockPreview.getResolutionInfo(), - ).thenAnswer((_) async => testResolutionInfo); - return mockPreview; - }, - newImageCapture: - ({ - CameraXFlashMode? flashMode, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - ResolutionSelector? resolutionSelector, - int? targetRotation, - }) { - return mockImageCapture; - }, - newRecorder: - ({ - int? aspectRatio, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) { - when( - mockRecorder.prepareRecording(outputPath), - ).thenAnswer((_) async => mockPendingRecording); - return mockRecorder; - }, - withOutputVideoCapture: - ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - required VideoOutput videoOutput, - CameraIntegerRange? targetFpsRange, - }) { - return mockVideoCapture; - }, - newImageAnalysis: - ({ - int? outputImageFormat, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - ResolutionSelector? resolutionSelector, - int? targetRotation, - CameraIntegerRange? targetFpsRange, - }) { - return mockImageAnalysis; - }, - newCameraSelector: - ({ - LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - if (cameraInfoForFilter == mockFrontCameraInfo) { - return mockFrontCameraSelector; - } - return mockBackCameraSelector; - }, - newDeviceOrientationManager: - ({ - required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final manager = MockDeviceOrientationManager(); - when(manager.getUiOrientation()).thenAnswer((_) async { - return 'PORTRAIT_UP'; - }); - return manager; - }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final camera2cameraInfo = MockCamera2CameraInfo(); - when( - camera2cameraInfo.getCameraCharacteristic(any), - ).thenAnswer((_) async => InfoSupportedHardwareLevel.limited); - return camera2cameraInfo; - }, - sensorOrientationCameraCharacteristics: () { - return mockCameraCharacteristicsKey; - }, - 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, - }) { - final mockSystemServicesManager = MockSystemServicesManager(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + PigeonOverrides.preview_new = + ({ + ResolutionSelector? resolutionSelector, + int? targetRotation, + CameraIntegerRange? targetFpsRange, + }) { + when( + mockPreview.setSurfaceProvider(any), + ).thenAnswer((_) async => 19); + final testResolutionInfo = ResolutionInfo.pigeon_detached( + resolution: MockCameraSize(), + ); + when( + mockPreview.surfaceProducerHandlesCropAndRotation(), + ).thenAnswer((_) async => false); + when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); + when( + mockPreview.getResolutionInfo(), + ).thenAnswer((_) async => testResolutionInfo); + return mockPreview; + }; + PigeonOverrides.imageCapture_new = + ({ + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + int? targetRotation, + }) { + return mockImageCapture; + }; + PigeonOverrides.recorder_new = + ({ + int? aspectRatio, + QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) { + when( + mockRecorder.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + return mockRecorder; + }; + PigeonOverrides.videoCapture_withOutput = + ({ + required VideoOutput videoOutput, + CameraIntegerRange? targetFpsRange, + }) { + return mockVideoCapture; + }; + PigeonOverrides.imageAnalysis_new = + ({ + int? outputImageFormat, + ResolutionSelector? resolutionSelector, + int? targetRotation, + CameraIntegerRange? targetFpsRange, + }) { + return mockImageAnalysis; + }; + PigeonOverrides.cameraSelector_new = + ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { + if (cameraInfoForFilter == mockFrontCameraInfo) { + return mockFrontCameraSelector; + } + return mockBackCameraSelector; + }; + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final manager = MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }; + PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) { + final camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.limited); + return camera2cameraInfo; + }; + PigeonOverrides.cameraCharacteristics_sensorOrientation = + mockCameraCharacteristicsKey; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); // mock functions when(mockProcessCameraProvider.getAvailableCameraInfos()).thenAnswer( @@ -4519,11 +3525,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.availableCameras(); @@ -4540,265 +3542,196 @@ void main() { await camera.setDescriptionWhileRecording(testFrontCameraDescription); //verify front camera selected and camera properties updated - verify(camera.processCameraProvider?.unbindAll()).called(2); - verify( - camera.processCameraProvider?.bindToLifecycle( - mockFrontCameraSelector, - [ - mockVideoCapture, - mockPreview, - mockImageCapture, - mockImageAnalysis, - ], - ), - ).called(1); - expect(camera.camera, equals(newMockCamera)); - expect(camera.cameraInfo, equals(mockCameraInfo)); - expect(camera.cameraControl, equals(mockCameraControl)); - verify(mockLiveCameraState.removeObservers()); - for (final Object? observer in verify( - newMockLiveCameraState.observe(captureAny), - ).captured) { - expect( - await testCameraClosingObserver( - camera, - flutterSurfaceTextureId, - observer! as Observer, - ), - isTrue, - ); - } - - //verify back camera selected - await camera.setDescriptionWhileRecording(testBackCameraDescription); - verify( - camera.processCameraProvider?.bindToLifecycle( - mockBackCameraSelector, - [ - mockVideoCapture, - mockPreview, - mockImageCapture, - mockImageAnalysis, - ], - ), - ).called(1); - }); - - test('setDescriptionWhileRecording does not resume paused preview', () async { - final camera = AndroidCameraCameraX(); - final mockRecording = MockRecording(); - final mockPendingRecording = MockPendingRecording(); - final mockRecorder = MockRecorder(); - - const testSensorOrientation = 90; - const testBackCameraDescription = CameraDescription( - name: 'Camera 0', - lensDirection: CameraLensDirection.back, - sensorOrientation: testSensorOrientation, - ); - const testFrontCameraDescription = CameraDescription( - name: 'Camera 1', - lensDirection: CameraLensDirection.front, - sensorOrientation: testSensorOrientation, - ); - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final mockProcessCameraProvider = MockProcessCameraProvider(); - final mockPreview = MockPreview(); - final mockCamera = MockCamera(); - final mockCameraInfo = MockCameraInfo(); - final mockCameraControl = MockCameraControl(); - final mockImageCapture = MockImageCapture(); - final mockImageAnalysis = MockImageAnalysis(); - final mockVideoCapture = MockVideoCapture(); - final mockBackCameraSelector = MockCameraSelector(); - final mockFrontCameraSelector = MockCameraSelector(); - final mockFrontCameraInfo = MockCameraInfo(); - final mockBackCameraInfo = MockCameraInfo(); - final mockCameraCharacteristicsKey = MockCameraCharacteristicsKey(); - - const outputPath = 'file/output.mp4'; - - camera.proxy = CameraXProxy( - newPreview: - ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - ResolutionSelector? resolutionSelector, - int? targetRotation, - CameraIntegerRange? targetFpsRange, - }) { - when( - mockPreview.setSurfaceProvider(any), - ).thenAnswer((_) async => 19); - final testResolutionInfo = ResolutionInfo.pigeon_detached( - resolution: MockCameraSize(), - ); - when( - mockPreview.surfaceProducerHandlesCropAndRotation(), - ).thenAnswer((_) async => false); - when( - mockPreview.resolutionSelector, - ).thenReturn(resolutionSelector); - when( - mockPreview.getResolutionInfo(), - ).thenAnswer((_) async => testResolutionInfo); - return mockPreview; - }, - newImageCapture: - ({ - CameraXFlashMode? flashMode, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - ResolutionSelector? resolutionSelector, - int? targetRotation, - }) { - return mockImageCapture; - }, - newRecorder: - ({ - int? aspectRatio, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) { - when( - mockRecorder.prepareRecording(outputPath), - ).thenAnswer((_) async => mockPendingRecording); - return mockRecorder; - }, - withOutputVideoCapture: - ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - required VideoOutput videoOutput, - CameraIntegerRange? targetFpsRange, - }) { - return mockVideoCapture; - }, - newImageAnalysis: - ({ - int? outputImageFormat, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - ResolutionSelector? resolutionSelector, - int? targetRotation, - CameraIntegerRange? targetFpsRange, - }) { - return mockImageAnalysis; - }, - newCameraSelector: - ({ - LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - if (cameraInfoForFilter == mockFrontCameraInfo) { - return mockFrontCameraSelector; - } - return mockBackCameraSelector; - }, - newDeviceOrientationManager: - ({ - required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final manager = MockDeviceOrientationManager(); - when(manager.getUiOrientation()).thenAnswer((_) async { - return 'PORTRAIT_UP'; - }); - return manager; - }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final camera2cameraInfo = MockCamera2CameraInfo(); - when( - camera2cameraInfo.getCameraCharacteristic(any), - ).thenAnswer((_) async => InfoSupportedHardwareLevel.limited); - return camera2cameraInfo; - }, - sensorOrientationCameraCharacteristics: () { - return mockCameraCharacteristicsKey; - }, - 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, - }) { - final mockSystemServicesManager = MockSystemServicesManager(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, + verify(camera.processCameraProvider?.unbindAll()).called(2); + verify( + camera.processCameraProvider?.bindToLifecycle( + mockFrontCameraSelector, + [ + mockVideoCapture, + mockPreview, + mockImageCapture, + mockImageAnalysis, + ], + ), + ).called(1); + expect(camera.camera, equals(newMockCamera)); + expect(camera.cameraInfo, equals(mockCameraInfo)); + expect(camera.cameraControl, equals(mockCameraControl)); + verify(mockLiveCameraState.removeObservers()); + for (final Object? observer in verify( + newMockLiveCameraState.observe(captureAny), + ).captured) { + expect( + await testCameraClosingObserver( + camera, + flutterSurfaceTextureId, + observer! as Observer, + ), + isTrue, + ); + } + + //verify back camera selected + await camera.setDescriptionWhileRecording(testBackCameraDescription); + verify( + camera.processCameraProvider?.bindToLifecycle( + mockBackCameraSelector, + [ + mockVideoCapture, + mockPreview, + mockImageCapture, + mockImageAnalysis, + ], + ), + ).called(1); + }); + + test('setDescriptionWhileRecording does not resume paused preview', () async { + final camera = AndroidCameraCameraX(); + final mockRecording = MockRecording(); + final mockPendingRecording = MockPendingRecording(); + final mockRecorder = MockRecorder(); + + const testSensorOrientation = 90; + const testBackCameraDescription = CameraDescription( + name: 'Camera 0', + lensDirection: CameraLensDirection.back, + sensorOrientation: testSensorOrientation, + ); + const testFrontCameraDescription = CameraDescription( + name: 'Camera 1', + lensDirection: CameraLensDirection.front, + sensorOrientation: testSensorOrientation, ); + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final mockProcessCameraProvider = MockProcessCameraProvider(); + final mockPreview = MockPreview(); + final mockCamera = MockCamera(); + final mockCameraInfo = MockCameraInfo(); + final mockCameraControl = MockCameraControl(); + final mockImageCapture = MockImageCapture(); + final mockImageAnalysis = MockImageAnalysis(); + final mockVideoCapture = MockVideoCapture(); + final mockBackCameraSelector = MockCameraSelector(); + final mockFrontCameraSelector = MockCameraSelector(); + final mockFrontCameraInfo = MockCameraInfo(); + final mockBackCameraInfo = MockCameraInfo(); + final mockCameraCharacteristicsKey = MockCameraCharacteristicsKey(); + + const outputPath = 'file/output.mp4'; + + PigeonOverrides.preview_new = + ({ + ResolutionSelector? resolutionSelector, + int? targetRotation, + CameraIntegerRange? targetFpsRange, + }) { + when( + mockPreview.setSurfaceProvider(any), + ).thenAnswer((_) async => 19); + final testResolutionInfo = ResolutionInfo.pigeon_detached( + resolution: MockCameraSize(), + ); + when( + mockPreview.surfaceProducerHandlesCropAndRotation(), + ).thenAnswer((_) async => false); + when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); + when( + mockPreview.getResolutionInfo(), + ).thenAnswer((_) async => testResolutionInfo); + return mockPreview; + }; + PigeonOverrides.imageCapture_new = + ({ + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + int? targetRotation, + }) { + return mockImageCapture; + }; + PigeonOverrides.recorder_new = + ({ + int? aspectRatio, + QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) { + when( + mockRecorder.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + return mockRecorder; + }; + PigeonOverrides.videoCapture_withOutput = + ({ + required VideoOutput videoOutput, + CameraIntegerRange? targetFpsRange, + }) { + return mockVideoCapture; + }; + PigeonOverrides.imageAnalysis_new = + ({ + int? outputImageFormat, + ResolutionSelector? resolutionSelector, + int? targetRotation, + CameraIntegerRange? targetFpsRange, + }) { + return mockImageAnalysis; + }; + PigeonOverrides.cameraSelector_new = + ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { + if (cameraInfoForFilter == mockFrontCameraInfo) { + return mockFrontCameraSelector; + } + return mockBackCameraSelector; + }; + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final manager = MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }; + PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) { + final camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.limited); + return camera2cameraInfo; + }; + PigeonOverrides.cameraCharacteristics_sensorOrientation = + mockCameraCharacteristicsKey; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); + // mock functions when(mockProcessCameraProvider.getAvailableCameraInfos()).thenAnswer( (_) async => [mockBackCameraInfo, mockFrontCameraInfo], @@ -4847,11 +3780,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.availableCameras(); @@ -4900,23 +3829,10 @@ void main() { 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: (_) {}, - ), - ); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; when( mockProcessCameraProvider.isBound(camera.imageCapture), @@ -4956,24 +3872,17 @@ void main() { camera.processCameraProvider = mockProcessCameraProvider; // 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(); - when( - mockDeviceOrientationManager.getDefaultDisplayRotation(), - ).thenAnswer((_) async => defaultTargetRotation); - return mockDeviceOrientationManager; - }, - ); + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final mockDeviceOrientationManager = MockDeviceOrientationManager(); + when( + mockDeviceOrientationManager.getDefaultDisplayRotation(), + ).thenAnswer((_) async => defaultTargetRotation); + return mockDeviceOrientationManager; + }; when( mockProcessCameraProvider.isBound(camera.imageCapture), @@ -5127,17 +4036,13 @@ void main() { test('getMinExposureOffset returns expected exposure offset', () async { final camera = AndroidCameraCameraX(); final mockCameraInfo = MockCameraInfo(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); + final 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. @@ -5153,17 +4058,13 @@ void main() { test('getMaxExposureOffset returns expected exposure offset', () async { final camera = AndroidCameraCameraX(); final mockCameraInfo = MockCameraInfo(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); + final 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. @@ -5178,17 +4079,13 @@ void main() { test('getExposureOffsetStepSize returns expected exposure offset', () async { final camera = AndroidCameraCameraX(); final mockCameraInfo = MockCameraInfo(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); + final 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. @@ -5204,17 +4101,12 @@ void main() { () async { final camera = AndroidCameraCameraX(); final mockCameraInfo = MockCameraInfo(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); final 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. @@ -5234,9 +4126,6 @@ void main() { final zoomState = ZoomState.pigeon_detached( maxZoomRatio: maxZoomRatio, minZoomRatio: 0, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), ); // Set directly for test versus calling createCamera. @@ -5258,9 +4147,6 @@ void main() { final zoomState = ZoomState.pigeon_detached( maxZoomRatio: 1, minZoomRatio: minZoomRatio, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), ); // Set directly for test versus calling createCamera. @@ -5303,23 +4189,10 @@ void main() { const 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: (_) {}, - ), - ); - }, - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) { + return Analyzer.pigeon_detached(analyze: analyze); + }; // Set directly for test versus calling createCamera. camera.processCameraProvider = mockProcessCameraProvider; @@ -5362,23 +4235,10 @@ void main() { const 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: (_) {}, - ), - ); - }, - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) { + return Analyzer.pigeon_detached(analyze: analyze); + }; // Set directly for test versus calling createCamera. camera.processCameraProvider = mockProcessCameraProvider; @@ -5436,38 +4296,14 @@ void main() { const 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: (_) {}, - ), - ); - }, - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) { + return Analyzer.pigeon_detached(analyze: analyze); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; // Set directly for test versus calling createCamera. camera.processCameraProvider = mockProcessCameraProvider; @@ -5553,44 +4389,21 @@ void main() { ).thenAnswer((_) async => MockLiveCameraState()); // Set up CameraXProxy with ImageAnalysis specifics needed for testing its Analyzer. - camera.proxy = getProxyForTestingUseCaseConfiguration( + setUpOverridesForTestingUseCaseConfiguration( mockProcessCameraProvider, - 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: (_) {}, - ), - ); - }, + newAnalyzer: ({required void Function(Analyzer, ImageProxy) analyze}) { + return Analyzer.pigeon_detached(analyze: analyze); + }, newImageAnalysis: ({ int? outputImageFormat, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, ResolutionSelector? resolutionSelector, int? targetRotation, CameraIntegerRange? targetFpsRange, }) => mockImageAnalysis, getNv21BufferImageProxyUtils: - ( - int imageWidth, - int imageHeight, - List planes, { - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => Future.value(testNv21Buffer), + (int imageWidth, int imageHeight, List planes) => + Future.value(testNv21Buffer), ); // Create and initialize camera with NV21. @@ -5648,20 +4461,13 @@ void main() { camera.imageAnalysis = mockImageAnalysis; camera.processCameraProvider = mockProcessCameraProvider; - // 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 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(), - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) => + MockAnalyzer(); when( mockProcessCameraProvider.isBound(mockImageAnalysis), @@ -5692,31 +4498,20 @@ 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(), - newDeviceOrientationManager: - ({ - required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final manager = MockDeviceOrientationManager(); - when(manager.getDefaultDisplayRotation()).thenAnswer((_) async { - return defaultTargetRotation; - }); - return manager; - }, - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) => + MockAnalyzer(); + PigeonOverrides.deviceOrientationManager_new = + ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + }) { + final manager = MockDeviceOrientationManager(); + when(manager.getDefaultDisplayRotation()).thenAnswer((_) async { + return defaultTargetRotation; + }); + return manager; + }; when( mockProcessCameraProvider.isBound(mockImageAnalysis), @@ -5835,43 +4630,23 @@ void main() { // Tell plugin to create detached Camera2CameraControl and // CaptureRequestOptions instances for testing. - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final 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(); - options.forEach((CaptureRequestKey key, Object? value) { - when( - mockCaptureRequestOptions.getCaptureRequestOption(key), - ).thenAnswer((_) async => value); - }); - return mockCaptureRequestOptions; - }, - controlAELockCaptureRequest: () => controlAELockKey, - ); + final controlAELockKey = CaptureRequestKey.pigeon_detached(); + PigeonOverrides.camera2CameraControl_from = + ({required CameraControl cameraControl}) => + cameraControl == mockCameraControl + ? mockCamera2CameraControl + : Camera2CameraControl.pigeon_detached(); + PigeonOverrides.captureRequestOptions_new = + ({required Map options}) { + final mockCaptureRequestOptions = MockCaptureRequestOptions(); + options.forEach((CaptureRequestKey key, Object? value) { + when( + mockCaptureRequestOptions.getCaptureRequestOption(key), + ).thenAnswer((_) async => value); + }); + return mockCaptureRequestOptions; + }; + PigeonOverrides.captureRequest_controlAELock = controlAELockKey; // Test auto mode. await camera.setExposureMode(cameraId, ExposureMode.auto); @@ -5919,30 +4694,19 @@ void main() { camera.cameraInfo = mockCameraInfo; final mockActionBuilder = MockFocusMeteringActionBuilder(); - final 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( + setUpOverridesForExposureAndFocus( withModeFocusMeteringActionBuilder: - ({ - required MeteringMode mode, - required MeteringPoint point, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { + ({required MeteringMode mode, required MeteringPoint point}) { actionBuilderMeteringMode = mode; actionBuilderMeteringPoint = point; return mockActionBuilder; @@ -5957,19 +4721,10 @@ void main() { // Verify current auto-exposure metering point is removed if previously set. final originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], + meteringPointsAe: [MeteringPoint.pigeon_detached()], + meteringPointsAf: [MeteringPoint.pigeon_detached()], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ); camera.currentFocusMeteringAction = originalMeteringAction; @@ -5986,15 +4741,10 @@ void main() { // 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, - ), - ], + meteringPointsAe: [MeteringPoint.pigeon_detached()], meteringPointsAf: const [], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ); await camera.setExposurePoint(cameraId, null); @@ -6015,7 +4765,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForExposureAndFocus(); + setUpOverridesForExposureAndFocus(); expect( () => camera.setExposurePoint(cameraId, invalidExposurePoint), @@ -6036,14 +4786,9 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = mockCameraInfo; - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); var exposurePointX = 0.8; var exposurePointY = 0.1; - final createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + final createdMeteringPoint = MeteringPoint.pigeon_detached(); MeteringMode? actionBuilderMeteringMode; MeteringPoint? actionBuilderMeteringPoint; final mockActionBuilder = MockFocusMeteringActionBuilder(); @@ -6053,19 +4798,14 @@ void main() { meteringPointsAf: const [], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ), ); - camera.proxy = getProxyForExposureAndFocus( + setUpOverridesForExposureAndFocus( newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, + required dynamic cameraInfo, required double width, required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { final mockFactory = MockDisplayOrientedMeteringPointFactory(); when( @@ -6074,14 +4814,7 @@ void main() { 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, - }) { + ({required MeteringMode mode, required MeteringPoint point}) { actionBuilderMeteringMode = mode; actionBuilderMeteringPoint = point; return mockActionBuilder; @@ -6091,19 +4824,10 @@ void main() { // Verify current auto-exposure metering point is removed if previously set. var exposurePoint = Point(exposurePointX, exposurePointY); var originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], + meteringPointsAe: [MeteringPoint.pigeon_detached()], + meteringPointsAf: [MeteringPoint.pigeon_detached()], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ); camera.currentFocusMeteringAction = originalMeteringAction; @@ -6128,14 +4852,9 @@ void main() { exposurePoint = Point(exposurePointX, exposurePointY); originalMeteringAction = FocusMeteringAction.pigeon_detached( meteringPointsAe: const [], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], + meteringPointsAf: [MeteringPoint.pigeon_detached()], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ); camera.currentFocusMeteringAction = originalMeteringAction; @@ -6170,12 +4889,7 @@ void main() { camera.cameraInfo = MockCameraInfo(); camera.currentFocusMeteringAction = null; - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + final createdMeteringPoint = MeteringPoint.pigeon_detached(); MeteringMode? actionBuilderMeteringMode; MeteringPoint? actionBuilderMeteringPoint; final mockActionBuilder = MockFocusMeteringActionBuilder(); @@ -6185,19 +4899,14 @@ void main() { meteringPointsAf: const [], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ), ); - camera.proxy = getProxyForExposureAndFocus( + setUpOverridesForExposureAndFocus( newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, + required dynamic cameraInfo, required double width, required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { final mockFactory = MockDisplayOrientedMeteringPointFactory(); when( @@ -6206,14 +4915,7 @@ void main() { 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, - }) { + ({required MeteringMode mode, required MeteringPoint point}) { actionBuilderMeteringMode = mode; actionBuilderMeteringPoint = point; return mockActionBuilder; @@ -6241,7 +4943,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, MockCamera2CameraControl(), ); @@ -6285,17 +4987,12 @@ void main() { const cameraId = 6; const double offset = 2; final mockCameraInfo = MockCameraInfo(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); final 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. @@ -6318,17 +5015,12 @@ void main() { const double offset = 3; final mockCameraInfo = MockCameraInfo(); final CameraControl mockCameraControl = MockCameraControl(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); final 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. @@ -6359,17 +5051,12 @@ void main() { const double offset = 5; final mockCameraInfo = MockCameraInfo(); final CameraControl mockCameraControl = MockCameraControl(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); final 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(); @@ -6400,17 +5087,12 @@ void main() { const double offset = 3; final mockCameraInfo = MockCameraInfo(); final CameraControl mockCameraControl = MockCameraControl(); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); final 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(); @@ -6451,30 +5133,19 @@ void main() { camera.cameraInfo = mockCameraInfo; final mockActionBuilder = MockFocusMeteringActionBuilder(); - final 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( + setUpOverridesForExposureAndFocus( withModeFocusMeteringActionBuilder: - ({ - required MeteringMode mode, - required MeteringPoint point, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { + ({required MeteringMode mode, required MeteringPoint point}) { actionBuilderMeteringMode = mode; actionBuilderMeteringPoint = point; return mockActionBuilder; @@ -6487,20 +5158,11 @@ void main() { verifyNever(mockCameraControl.startFocusAndMetering(any)); verifyNever(mockCameraControl.cancelFocusAndMetering()); - final originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], + final originalMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: [MeteringPoint.pigeon_detached()], + meteringPointsAf: [MeteringPoint.pigeon_detached()], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ); camera.currentFocusMeteringAction = originalMeteringAction; @@ -6518,14 +5180,9 @@ void main() { // set metering point was for auto-exposure. camera.currentFocusMeteringAction = FocusMeteringAction.pigeon_detached( meteringPointsAe: const [], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], + meteringPointsAf: [MeteringPoint.pigeon_detached()], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ); await camera.setFocusPoint(cameraId, null); @@ -6546,7 +5203,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForExposureAndFocus(); + setUpOverridesForExposureAndFocus(); expect( () => camera.setFocusPoint(cameraId, invalidFocusPoint), @@ -6567,15 +5224,10 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = mockCameraInfo; - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); var focusPointX = 0.8; var focusPointY = 0.1; var focusPoint = Point(focusPointX, focusPointY); - final createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + final createdMeteringPoint = MeteringPoint.pigeon_detached(); MeteringMode? actionBuilderMeteringMode; MeteringPoint? actionBuilderMeteringPoint; final mockActionBuilder = MockFocusMeteringActionBuilder(); @@ -6585,19 +5237,14 @@ void main() { meteringPointsAf: const [], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ), ); - camera.proxy = getProxyForExposureAndFocus( + setUpOverridesForExposureAndFocus( newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, + required dynamic cameraInfo, required double width, required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { final mockFactory = MockDisplayOrientedMeteringPointFactory(); when( @@ -6606,14 +5253,7 @@ void main() { 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, - }) { + ({required MeteringMode mode, required MeteringPoint point}) { actionBuilderMeteringMode = mode; actionBuilderMeteringPoint = point; return mockActionBuilder; @@ -6622,19 +5262,10 @@ void main() { // Verify current auto-exposure metering point is removed if previously set. var originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], + meteringPointsAe: [MeteringPoint.pigeon_detached()], + meteringPointsAf: [MeteringPoint.pigeon_detached()], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ); camera.currentFocusMeteringAction = originalMeteringAction; @@ -6658,15 +5289,10 @@ void main() { focusPointY = 0.9; focusPoint = Point(focusPointX, focusPointY); originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], + meteringPointsAe: [MeteringPoint.pigeon_detached()], meteringPointsAf: const [], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ); camera.currentFocusMeteringAction = originalMeteringAction; @@ -6701,12 +5327,7 @@ void main() { camera.cameraInfo = MockCameraInfo(); camera.currentFocusMeteringAction = null; - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + final createdMeteringPoint = MeteringPoint.pigeon_detached(); MeteringMode? actionBuilderMeteringMode; MeteringPoint? actionBuilderMeteringPoint; final mockActionBuilder = MockFocusMeteringActionBuilder(); @@ -6716,19 +5337,14 @@ void main() { meteringPointsAf: const [], meteringPointsAwb: const [], isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, ), ); - camera.proxy = getProxyForExposureAndFocus( + setUpOverridesForExposureAndFocus( newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, + required dynamic cameraInfo, required double width, required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { final mockFactory = MockDisplayOrientedMeteringPointFactory(); when( @@ -6737,14 +5353,7 @@ void main() { 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, - }) { + ({required MeteringMode mode, required MeteringPoint point}) { actionBuilderMeteringMode = mode; actionBuilderMeteringPoint = point; return mockActionBuilder; @@ -6771,7 +5380,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, MockCamera2CameraControl(), ); @@ -6822,7 +5431,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, MockCamera2CameraControl(), ); @@ -6875,39 +5484,28 @@ void main() { mockCamera2CameraControl.addCaptureRequestOptions(any), ).thenAnswer((_) async => Future.value()); - final testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); final createdMeteringPoints = []; - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, + required dynamic cameraInfo, required double width, required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { final mockFactory = MockDisplayOrientedMeteringPointFactory(); when( mockFactory.createPoint(exposurePointX, exposurePointY), ).thenAnswer((_) async { - final createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + final createdMeteringPoint = MeteringPoint.pigeon_detached(); createdMeteringPoints.add(createdMeteringPoint); return createdMeteringPoint; }); when(mockFactory.createPointWithSize(0.5, 0.5, 1)).thenAnswer(( _, ) async { - final createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + final createdMeteringPoint = MeteringPoint.pigeon_detached(); createdMeteringPoints.add(createdMeteringPoint); return createdMeteringPoint; }); @@ -6967,7 +5565,7 @@ void main() { mockCamera2CameraControl.addCaptureRequestOptions(any), ).thenAnswer((_) async => Future.value()); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, ); @@ -7008,7 +5606,7 @@ void main() { mockCamera2CameraControl.addCaptureRequestOptions(any), ).thenAnswer((_) async => Future.value()); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, ); @@ -7066,7 +5664,7 @@ void main() { mockCamera2CameraControl.addCaptureRequestOptions(any), ).thenAnswer((_) async => Future.value()); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, ); @@ -7121,7 +5719,7 @@ void main() { mockCamera2CameraControl.addCaptureRequestOptions(any), ).thenAnswer((_) async => Future.value()); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, ); @@ -7188,7 +5786,7 @@ void main() { mockCamera2CameraControl.addCaptureRequestOptions(any), ).thenAnswer((_) async => Future.value()); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, ); @@ -7250,7 +5848,7 @@ void main() { mockCamera2CameraControl.addCaptureRequestOptions(any), ).thenAnswer((_) async => Future.value()); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, ); @@ -7296,7 +5894,7 @@ void main() { mockCamera2CameraControl.addCaptureRequestOptions(any), ).thenAnswer((_) async => Future.value()); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, ); @@ -7321,7 +5919,7 @@ void main() { verificationResult.captured.single as CaptureRequestOptions; expect( await capturedCaptureRequestOptions.getCaptureRequestOption( - camera.proxy.controlAELockCaptureRequest(), + CaptureRequest.controlAELock, ), isFalse, ); @@ -7341,7 +5939,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, MockCamera2CameraControl(), ); @@ -7395,7 +5993,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, MockCamera2CameraControl(), ); @@ -7448,7 +6046,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, MockCamera2CameraControl(), ); @@ -7490,7 +6088,7 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForSettingFocusandExposurePoints( + setUpOverridesForSettingFocusandExposurePoints( mockCameraControl, MockCamera2CameraControl(), ); @@ -7538,31 +6136,13 @@ void main() { camera.captureOrientationLocked = true; // 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: (_) {}, - ), - ); - }, - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) => + MockAnalyzer(); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; when( mockProcessCameraProvider.isBound(mockImageAnalysis), @@ -7618,68 +6198,38 @@ void main() { // Tell plugin to create detached Observer when camera info updated. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 7; @@ -7720,11 +6270,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -7760,68 +6306,34 @@ void main() { // Tell plugin to create detached Observer when camera info updated. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 77; @@ -7862,11 +6374,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -7897,73 +6405,39 @@ void main() { camera.imageAnalysis = MockImageAnalysis(); camera.enableRecordingAudio = false; - // 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 outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 87; @@ -8004,11 +6478,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing( @@ -8049,83 +6519,38 @@ void main() { // Tell plugin to create detached Observer when camera info updated. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) { + return Analyzer.pigeon_detached(analyze: analyze); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 107; @@ -8169,11 +6594,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing( @@ -8215,83 +6636,38 @@ void main() { // Tell plugin to create detached Observer when camera info updated. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) { + return Analyzer.pigeon_detached(analyze: analyze); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 97; @@ -8328,11 +6704,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -8373,83 +6745,38 @@ void main() { // Tell plugin to create detached Observer when camera info updated. const outputPath = '/temp/REC123.mp4'; - 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(); - when( - mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, - '.mp4', - ), - ).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(); - }, - ); + PigeonOverrides.analyzer_new = + ({required void Function(Analyzer, ImageProxy) analyze}) { + return Analyzer.pigeon_detached(analyze: analyze); + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.camera2CameraInfo_from = + ({required dynamic cameraInfo}) => mockCamera2CameraInfo; + PigeonOverrides.systemServicesManager_new = + ({ + required void Function(SystemServicesManager, String) onCameraError, + }) { + final mockSystemServicesManager = MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.mp4', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }; + PigeonOverrides.videoRecordEventListener_new = + ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + }) { + return VideoRecordEventListener.pigeon_detached(onEvent: onEvent); + }; + PigeonOverrides.cameraCharacteristics_infoSupportedHardwareLevel = + MockCameraCharacteristicsKey(); const cameraId = 44; @@ -8493,11 +6820,7 @@ void main() { // Simulate video recording being started so startVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), + VideoRecordEventStart.pigeon_detached(), ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -8533,11 +6856,7 @@ 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(); 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 0636af52902..2431ccb72a8 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 @@ -4,14 +4,12 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; -import 'dart:typed_data' as _i9; +import 'dart:typed_data' as _i7; import 'package:camera_android_camerax/src/camerax_library.dart' as _i3; 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; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i6; @@ -28,6 +26,7 @@ import 'package:mockito/src/dummies.dart' as _i6; // ignore_for_file: unnecessary_parenthesis // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class +// ignore_for_file: invalid_use_of_internal_member class _FakePigeonInstanceManager_0 extends _i1.SmartFake implements _i2.PigeonInstanceManager { @@ -111,167 +110,155 @@ class _FakeCameraSelector_14 extends _i1.SmartFake : super(parent, parentInvocation); } -class _FakeCameraIntegerRange_15 extends _i1.SmartFake - implements _i2.CameraIntegerRange { - _FakeCameraIntegerRange_15(Object parent, Invocation parentInvocation) +class _FakeCaptureRequestOptions_15 extends _i1.SmartFake + implements _i2.CaptureRequestOptions { + _FakeCaptureRequestOptions_15(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeObserver_16 extends _i1.SmartFake implements _i3.Observer { - _FakeObserver_16(Object parent, Invocation parentInvocation) +class _FakeDeviceOrientationManager_16 extends _i1.SmartFake + implements _i2.DeviceOrientationManager { + _FakeDeviceOrientationManager_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); +class _FakeDisplayOrientedMeteringPointFactory_17 extends _i1.SmartFake + implements _i2.DisplayOrientedMeteringPointFactory { + _FakeDisplayOrientedMeteringPointFactory_17( + Object parent, + Invocation parentInvocation, + ) : super(parent, parentInvocation); } -class _FakeDeviceOrientationManager_18 extends _i1.SmartFake - implements _i2.DeviceOrientationManager { - _FakeDeviceOrientationManager_18(Object parent, Invocation parentInvocation) +class _FakeMeteringPoint_18 extends _i1.SmartFake implements _i2.MeteringPoint { + _FakeMeteringPoint_18(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakePreview_19 extends _i1.SmartFake implements _i2.Preview { - _FakePreview_19(Object parent, Invocation parentInvocation) +class _FakeCameraIntegerRange_19 extends _i1.SmartFake + implements _i2.CameraIntegerRange { + _FakeCameraIntegerRange_19(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeVideoCapture_20 extends _i1.SmartFake implements _i2.VideoCapture { - _FakeVideoCapture_20(Object parent, Invocation parentInvocation) +class _FakeFallbackStrategy_20 extends _i1.SmartFake + implements _i2.FallbackStrategy { + _FakeFallbackStrategy_20(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeRecorder_21 extends _i1.SmartFake implements _i2.Recorder { - _FakeRecorder_21(Object parent, Invocation parentInvocation) +class _FakeFocusMeteringAction_21 extends _i1.SmartFake + implements _i2.FocusMeteringAction { + _FakeFocusMeteringAction_21(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeVideoRecordEventListener_22 extends _i1.SmartFake - implements _i2.VideoRecordEventListener { - _FakeVideoRecordEventListener_22(Object parent, Invocation parentInvocation) +class _FakeFocusMeteringActionBuilder_22 extends _i1.SmartFake + implements _i2.FocusMeteringActionBuilder { + _FakeFocusMeteringActionBuilder_22(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeImageCapture_23 extends _i1.SmartFake implements _i2.ImageCapture { - _FakeImageCapture_23(Object parent, Invocation parentInvocation) +class _FakeFocusMeteringResult_23 extends _i1.SmartFake + implements _i2.FocusMeteringResult { + _FakeFocusMeteringResult_23(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeResolutionStrategy_24 extends _i1.SmartFake - implements _i2.ResolutionStrategy { - _FakeResolutionStrategy_24(Object parent, Invocation parentInvocation) +class _FakeImageAnalysis_24 extends _i1.SmartFake implements _i2.ImageAnalysis { + _FakeImageAnalysis_24(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeResolutionSelector_25 extends _i1.SmartFake - implements _i2.ResolutionSelector { - _FakeResolutionSelector_25(Object parent, Invocation parentInvocation) +class _FakeImageCapture_25 extends _i1.SmartFake implements _i2.ImageCapture { + _FakeImageCapture_25(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeImageAnalysis_26 extends _i1.SmartFake implements _i2.ImageAnalysis { - _FakeImageAnalysis_26(Object parent, Invocation parentInvocation) +class _FakeImageProxy_26 extends _i1.SmartFake implements _i2.ImageProxy { + _FakeImageProxy_26(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeQualitySelector_27 extends _i1.SmartFake - implements _i2.QualitySelector { - _FakeQualitySelector_27(Object parent, Invocation parentInvocation) +class _FakeObserver_27 extends _i1.SmartFake implements _i3.Observer { + _FakeObserver_27(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeFallbackStrategy_28 extends _i1.SmartFake - implements _i2.FallbackStrategy { - _FakeFallbackStrategy_28(Object parent, Invocation parentInvocation) +class _FakePendingRecording_28 extends _i1.SmartFake + implements _i2.PendingRecording { + _FakePendingRecording_28(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeFocusMeteringActionBuilder_29 extends _i1.SmartFake - implements _i2.FocusMeteringActionBuilder { - _FakeFocusMeteringActionBuilder_29(Object parent, Invocation parentInvocation) +class _FakeRecording_29 extends _i1.SmartFake implements _i2.Recording { + _FakeRecording_29(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeCaptureRequestOptions_30 extends _i1.SmartFake - implements _i2.CaptureRequestOptions { - _FakeCaptureRequestOptions_30(Object parent, Invocation parentInvocation) +class _FakePlaneProxy_30 extends _i1.SmartFake implements _i2.PlaneProxy { + _FakePlaneProxy_30(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeResolutionFilter_31 extends _i1.SmartFake - implements _i2.ResolutionFilter { - _FakeResolutionFilter_31(Object parent, Invocation parentInvocation) +class _FakePreview_31 extends _i1.SmartFake implements _i2.Preview { + _FakePreview_31(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake - implements _i2.DisplayOrientedMeteringPointFactory { - _FakeDisplayOrientedMeteringPointFactory_32( - Object parent, - Invocation parentInvocation, - ) : super(parent, parentInvocation); -} - -class _FakeProcessCameraProvider_33 extends _i1.SmartFake +class _FakeProcessCameraProvider_32 extends _i1.SmartFake implements _i2.ProcessCameraProvider { - _FakeProcessCameraProvider_33(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); -} - -class _FakeCaptureRequestKey_34 extends _i1.SmartFake - implements _i2.CaptureRequestKey { - _FakeCaptureRequestKey_34(Object parent, Invocation parentInvocation) + _FakeProcessCameraProvider_32(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeMeteringPoint_35 extends _i1.SmartFake implements _i2.MeteringPoint { - _FakeMeteringPoint_35(Object parent, Invocation parentInvocation) +class _FakeQualitySelector_33 extends _i1.SmartFake + implements _i2.QualitySelector { + _FakeQualitySelector_33(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeFocusMeteringAction_36 extends _i1.SmartFake - implements _i2.FocusMeteringAction { - _FakeFocusMeteringAction_36(Object parent, Invocation parentInvocation) +class _FakeRecorder_34 extends _i1.SmartFake implements _i2.Recorder { + _FakeRecorder_34(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeFocusMeteringResult_37 extends _i1.SmartFake - implements _i2.FocusMeteringResult { - _FakeFocusMeteringResult_37(Object parent, Invocation parentInvocation) +class _FakeResolutionFilter_35 extends _i1.SmartFake + implements _i2.ResolutionFilter { + _FakeResolutionFilter_35(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeImageProxy_38 extends _i1.SmartFake implements _i2.ImageProxy { - _FakeImageProxy_38(Object parent, Invocation parentInvocation) +class _FakeResolutionSelector_36 extends _i1.SmartFake + implements _i2.ResolutionSelector { + _FakeResolutionSelector_36(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakePendingRecording_39 extends _i1.SmartFake - implements _i2.PendingRecording { - _FakePendingRecording_39(Object parent, Invocation parentInvocation) +class _FakeResolutionStrategy_37 extends _i1.SmartFake + implements _i2.ResolutionStrategy { + _FakeResolutionStrategy_37(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeRecording_40 extends _i1.SmartFake implements _i2.Recording { - _FakeRecording_40(Object parent, Invocation parentInvocation) +class _FakeSystemServicesManager_38 extends _i1.SmartFake + implements _i2.SystemServicesManager { + _FakeSystemServicesManager_38(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakePlaneProxy_41 extends _i1.SmartFake implements _i2.PlaneProxy { - _FakePlaneProxy_41(Object parent, Invocation parentInvocation) +class _FakeVideoOutput_39 extends _i1.SmartFake implements _i2.VideoOutput { + _FakeVideoOutput_39(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeVideoOutput_42 extends _i1.SmartFake implements _i2.VideoOutput { - _FakeVideoOutput_42(Object parent, Invocation parentInvocation) +class _FakeVideoCapture_40 extends _i1.SmartFake implements _i2.VideoCapture { + _FakeVideoCapture_40(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } -class _FakeZoomState_43 extends _i1.SmartFake implements _i2.ZoomState { - _FakeZoomState_43(Object parent, Invocation parentInvocation) +class _FakeZoomState_41 extends _i1.SmartFake implements _i2.ZoomState { + _FakeZoomState_41(Object parent, Invocation parentInvocation) : super(parent, parentInvocation); } @@ -920,1422 +907,6 @@ class MockCameraSelector extends _i1.Mock implements _i2.CameraSelector { as _i2.CameraSelector); } -/// A class which mocks [CameraXProxy]. -/// -/// See the documentation for Mockito's code generation for more information. -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_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({ - 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, - })); - - @override - _i2.CameraSelector Function({ - _i3.CameraInfo? cameraInfoForFilter, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) - get newCameraSelector => - (super.noSuchMethod( - Invocation.getter(#newCameraSelector), - returnValue: - ({ - _i3.CameraInfo? cameraInfoForFilter, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - returnValueForMissingStub: - ({ - _i3.CameraInfo? cameraInfoForFilter, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - ) - as _i2.CameraSelector Function({ - _i3.CameraInfo? cameraInfoForFilter, - _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, - })); - - @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_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({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - _i2.CameraIntegerRange? targetFpsRange, - int? targetRotation, - }) - get newPreview => - (super.noSuchMethod( - Invocation.getter(#newPreview), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - _i2.CameraIntegerRange? targetFpsRange, - int? targetRotation, - }) => _FakePreview_19(this, Invocation.getter(#newPreview)), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - _i2.CameraIntegerRange? targetFpsRange, - int? targetRotation, - }) => _FakePreview_19(this, Invocation.getter(#newPreview)), - ) - as _i2.Preview Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - _i2.CameraIntegerRange? targetFpsRange, - int? targetRotation, - })); - - @override - _i2.VideoCapture Function({ - required _i2.VideoOutput videoOutput, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.CameraIntegerRange? targetFpsRange, - }) - get withOutputVideoCapture => - (super.noSuchMethod( - Invocation.getter(#withOutputVideoCapture), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.CameraIntegerRange? targetFpsRange, - required _i2.VideoOutput videoOutput, - }) => _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.CameraIntegerRange? targetFpsRange, - 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, - _i2.CameraIntegerRange? targetFpsRange, - })); - - @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_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, - _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({ - _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({ - 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({ - _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({ - 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({ - int? outputImageFormat, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - _i2.CameraIntegerRange? targetFpsRange, - int? targetRotation, - }) - get newImageAnalysis => - (super.noSuchMethod( - Invocation.getter(#newImageAnalysis), - returnValue: - ({ - int? outputImageFormat, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - _i2.CameraIntegerRange? targetFpsRange, - int? targetRotation, - }) => _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - returnValueForMissingStub: - ({ - int? outputImageFormat, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - _i2.CameraIntegerRange? targetFpsRange, - int? targetRotation, - }) => _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - ) - as _i2.ImageAnalysis Function({ - int? outputImageFormat, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - _i2.CameraIntegerRange? targetFpsRange, - 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_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({ - 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, - })); - - @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, - })); - - @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, - })); - - @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, - })); - - @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, - })); - - @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_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 - _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 - _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 - _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, - })); - - @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_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 - _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( - _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()); - - @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()); - - @override - _i2.ResolutionStrategy Function() - 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()); - - @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 - _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()); - - @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( - Invocation.getter(#sensorOrientationCameraCharacteristics), - returnValue: () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - ) - as _i2.CameraCharacteristicsKey Function()); - - @override - _i5.Future<_i9.Uint8List?> Function( - int, - int, - List<_i2.PlaneProxy>, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get getNv21BufferImageProxyUtils => - (super.noSuchMethod( - Invocation.getter(#getNv21BufferImageProxyUtils), - returnValue: - ( - int imageWidth, - int imageHeight, - List<_i2.PlaneProxy> planes, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i9.Uint8List?>.value(), - returnValueForMissingStub: - ( - int imageWidth, - int imageHeight, - List<_i2.PlaneProxy> planes, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i9.Uint8List?>.value(), - ) - as _i5.Future<_i9.Uint8List?> Function( - int, - int, - List<_i2.PlaneProxy>, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _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 - 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 - 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 - 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 - set controlAELockCaptureRequest( - _i2.CaptureRequestKey Function()? _controlAELockCaptureRequest, - ) => super.noSuchMethod( - Invocation.setter( - #controlAELockCaptureRequest, - _controlAELockCaptureRequest, - ), - returnValueForMissingStub: null, - ); -} - /// A class which mocks [CaptureRequestOptions]. /// /// See the documentation for Mockito's code generation for more information. @@ -2369,11 +940,11 @@ class MockCaptureRequestOptions extends _i1.Mock _i2.CaptureRequestOptions pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeCaptureRequestOptions_30( + returnValue: _FakeCaptureRequestOptions_15( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeCaptureRequestOptions_30( + returnValueForMissingStub: _FakeCaptureRequestOptions_15( this, Invocation.method(#pigeon_copy, []), ), @@ -2469,11 +1040,11 @@ class MockDeviceOrientationManager extends _i1.Mock _i2.DeviceOrientationManager pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeDeviceOrientationManager_18( + returnValue: _FakeDeviceOrientationManager_16( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeDeviceOrientationManager_18( + returnValueForMissingStub: _FakeDeviceOrientationManager_16( this, Invocation.method(#pigeon_copy, []), ), @@ -2505,12 +1076,12 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeDisplayOrientedMeteringPointFactory_32( + returnValue: _FakeDisplayOrientedMeteringPointFactory_17( this, Invocation.method(#pigeon_copy, []), ), returnValueForMissingStub: - _FakeDisplayOrientedMeteringPointFactory_32( + _FakeDisplayOrientedMeteringPointFactory_17( this, Invocation.method(#pigeon_copy, []), ), @@ -2522,13 +1093,13 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock (super.noSuchMethod( Invocation.method(#createPoint, [x, y]), returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( + _FakeMeteringPoint_18( this, Invocation.method(#createPoint, [x, y]), ), ), returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( + _FakeMeteringPoint_18( this, Invocation.method(#createPoint, [x, y]), ), @@ -2545,13 +1116,13 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock (super.noSuchMethod( Invocation.method(#createPointWithSize, [x, y, size]), returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( + _FakeMeteringPoint_18( this, Invocation.method(#createPointWithSize, [x, y, size]), ), ), returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( + _FakeMeteringPoint_18( this, Invocation.method(#createPointWithSize, [x, y, size]), ), @@ -2568,11 +1139,11 @@ class MockExposureState extends _i1.Mock implements _i2.ExposureState { _i2.CameraIntegerRange get exposureCompensationRange => (super.noSuchMethod( Invocation.getter(#exposureCompensationRange), - returnValue: _FakeCameraIntegerRange_15( + returnValue: _FakeCameraIntegerRange_19( this, Invocation.getter(#exposureCompensationRange), ), - returnValueForMissingStub: _FakeCameraIntegerRange_15( + returnValueForMissingStub: _FakeCameraIntegerRange_19( this, Invocation.getter(#exposureCompensationRange), ), @@ -2642,11 +1213,11 @@ class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { _i2.FallbackStrategy pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeFallbackStrategy_28( + returnValue: _FakeFallbackStrategy_20( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeFallbackStrategy_28( + returnValueForMissingStub: _FakeFallbackStrategy_20( this, Invocation.method(#pigeon_copy, []), ), @@ -2709,11 +1280,11 @@ class MockFocusMeteringActionBuilder extends _i1.Mock (super.noSuchMethod( Invocation.method(#build, []), returnValue: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), + _FakeFocusMeteringAction_21(this, Invocation.method(#build, [])), ), returnValueForMissingStub: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36( + _FakeFocusMeteringAction_21( this, Invocation.method(#build, []), ), @@ -2725,11 +1296,11 @@ class MockFocusMeteringActionBuilder extends _i1.Mock _i2.FocusMeteringActionBuilder pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringActionBuilder_29( + returnValue: _FakeFocusMeteringActionBuilder_22( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( + returnValueForMissingStub: _FakeFocusMeteringActionBuilder_22( this, Invocation.method(#pigeon_copy, []), ), @@ -2770,11 +1341,11 @@ class MockFocusMeteringResult extends _i1.Mock _i2.FocusMeteringResult pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringResult_37( + returnValue: _FakeFocusMeteringResult_23( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeFocusMeteringResult_37( + returnValueForMissingStub: _FakeFocusMeteringResult_23( this, Invocation.method(#pigeon_copy, []), ), @@ -2832,11 +1403,11 @@ class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { _i2.ImageAnalysis pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageAnalysis_26( + returnValue: _FakeImageAnalysis_24( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeImageAnalysis_26( + returnValueForMissingStub: _FakeImageAnalysis_24( this, Invocation.method(#pigeon_copy, []), ), @@ -2898,11 +1469,11 @@ class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { _i2.ImageCapture pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageCapture_23( + returnValue: _FakeImageCapture_25( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeImageCapture_23( + returnValueForMissingStub: _FakeImageCapture_25( this, Invocation.method(#pigeon_copy, []), ), @@ -2982,11 +1553,11 @@ class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { _i2.ImageProxy pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageProxy_38( + returnValue: _FakeImageProxy_26( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeImageProxy_38( + returnValueForMissingStub: _FakeImageProxy_26( this, Invocation.method(#pigeon_copy, []), ), @@ -3027,11 +1598,11 @@ class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { _i3.Observer<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeObserver_16<_i2.CameraState>( + returnValue: _FakeObserver_27<_i2.CameraState>( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( + returnValueForMissingStub: _FakeObserver_27<_i2.CameraState>( this, Invocation.method(#pigeon_copy, []), ), @@ -3063,13 +1634,13 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { (super.noSuchMethod( Invocation.method(#withAudioEnabled, [initialMuted]), returnValue: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_39( + _FakePendingRecording_28( this, Invocation.method(#withAudioEnabled, [initialMuted]), ), ), returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_39( + _FakePendingRecording_28( this, Invocation.method(#withAudioEnabled, [initialMuted]), ), @@ -3082,13 +1653,13 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { (super.noSuchMethod( Invocation.method(#asPersistentRecording, []), returnValue: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_39( + _FakePendingRecording_28( this, Invocation.method(#asPersistentRecording, []), ), ), returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_39( + _FakePendingRecording_28( this, Invocation.method(#asPersistentRecording, []), ), @@ -3101,10 +1672,10 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { (super.noSuchMethod( Invocation.method(#start, [listener]), returnValue: _i5.Future<_i2.Recording>.value( - _FakeRecording_40(this, Invocation.method(#start, [listener])), + _FakeRecording_29(this, Invocation.method(#start, [listener])), ), returnValueForMissingStub: _i5.Future<_i2.Recording>.value( - _FakeRecording_40(this, Invocation.method(#start, [listener])), + _FakeRecording_29(this, Invocation.method(#start, [listener])), ), ) as _i5.Future<_i2.Recording>); @@ -3113,11 +1684,11 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { _i2.PendingRecording pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakePendingRecording_39( + returnValue: _FakePendingRecording_28( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakePendingRecording_39( + returnValueForMissingStub: _FakePendingRecording_28( this, Invocation.method(#pigeon_copy, []), ), @@ -3130,13 +1701,13 @@ 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 => + _i7.Uint8List get buffer => (super.noSuchMethod( Invocation.getter(#buffer), - returnValue: _i9.Uint8List(0), - returnValueForMissingStub: _i9.Uint8List(0), + returnValue: _i7.Uint8List(0), + returnValueForMissingStub: _i7.Uint8List(0), ) - as _i9.Uint8List); + as _i7.Uint8List); @override int get pixelStride => @@ -3175,11 +1746,11 @@ class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { _i2.PlaneProxy pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakePlaneProxy_41( + returnValue: _FakePlaneProxy_30( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakePlaneProxy_41( + returnValueForMissingStub: _FakePlaneProxy_30( this, Invocation.method(#pigeon_copy, []), ), @@ -3257,11 +1828,11 @@ class MockPreview extends _i1.Mock implements _i2.Preview { _i2.Preview pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakePreview_19( + returnValue: _FakePreview_31( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakePreview_19( + returnValueForMissingStub: _FakePreview_31( this, Invocation.method(#pigeon_copy, []), ), @@ -3355,11 +1926,11 @@ class MockProcessCameraProvider extends _i1.Mock _i2.ProcessCameraProvider pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeProcessCameraProvider_33( + returnValue: _FakeProcessCameraProvider_32( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeProcessCameraProvider_33( + returnValueForMissingStub: _FakeProcessCameraProvider_32( this, Invocation.method(#pigeon_copy, []), ), @@ -3390,11 +1961,11 @@ class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { _i2.QualitySelector pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeQualitySelector_27( + returnValue: _FakeQualitySelector_33( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeQualitySelector_27( + returnValueForMissingStub: _FakeQualitySelector_33( this, Invocation.method(#pigeon_copy, []), ), @@ -3444,13 +2015,13 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { (super.noSuchMethod( Invocation.method(#getQualitySelector, []), returnValue: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( + _FakeQualitySelector_33( this, Invocation.method(#getQualitySelector, []), ), ), returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( + _FakeQualitySelector_33( this, Invocation.method(#getQualitySelector, []), ), @@ -3463,13 +2034,13 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { (super.noSuchMethod( Invocation.method(#prepareRecording, [path]), returnValue: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_39( + _FakePendingRecording_28( this, Invocation.method(#prepareRecording, [path]), ), ), returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_39( + _FakePendingRecording_28( this, Invocation.method(#prepareRecording, [path]), ), @@ -3481,11 +2052,11 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { _i2.Recorder pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecorder_21( + returnValue: _FakeRecorder_34( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeRecorder_21( + returnValueForMissingStub: _FakeRecorder_34( this, Invocation.method(#pigeon_copy, []), ), @@ -3516,11 +2087,11 @@ class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { _i2.ResolutionFilter pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionFilter_31( + returnValue: _FakeResolutionFilter_35( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeResolutionFilter_31( + returnValueForMissingStub: _FakeResolutionFilter_35( this, Invocation.method(#pigeon_copy, []), ), @@ -3572,11 +2143,11 @@ class MockResolutionSelector extends _i1.Mock _i2.ResolutionSelector pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionSelector_25( + returnValue: _FakeResolutionSelector_36( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeResolutionSelector_25( + returnValueForMissingStub: _FakeResolutionSelector_36( this, Invocation.method(#pigeon_copy, []), ), @@ -3631,11 +2202,11 @@ class MockResolutionStrategy extends _i1.Mock _i2.ResolutionStrategy pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionStrategy_24( + returnValue: _FakeResolutionStrategy_37( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeResolutionStrategy_24( + returnValueForMissingStub: _FakeResolutionStrategy_37( this, Invocation.method(#pigeon_copy, []), ), @@ -3702,11 +2273,11 @@ class MockRecording extends _i1.Mock implements _i2.Recording { _i2.Recording pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecording_40( + returnValue: _FakeRecording_29( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeRecording_40( + returnValueForMissingStub: _FakeRecording_29( this, Invocation.method(#pigeon_copy, []), ), @@ -3786,11 +2357,11 @@ class MockSystemServicesManager extends _i1.Mock _i2.SystemServicesManager pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeSystemServicesManager_17( + returnValue: _FakeSystemServicesManager_38( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeSystemServicesManager_17( + returnValueForMissingStub: _FakeSystemServicesManager_38( this, Invocation.method(#pigeon_copy, []), ), @@ -3822,10 +2393,10 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { (super.noSuchMethod( Invocation.method(#getOutput, []), returnValue: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + _FakeVideoOutput_39(this, Invocation.method(#getOutput, [])), ), returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + _FakeVideoOutput_39(this, Invocation.method(#getOutput, [])), ), ) as _i5.Future<_i2.VideoOutput>); @@ -3843,11 +2414,11 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { _i2.VideoCapture pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeVideoCapture_20( + returnValue: _FakeVideoCapture_40( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeVideoCapture_20( + returnValueForMissingStub: _FakeVideoCapture_40( this, Invocation.method(#pigeon_copy, []), ), @@ -3896,11 +2467,11 @@ class MockZoomState extends _i1.Mock implements _i2.ZoomState { _i2.ZoomState pigeon_copy() => (super.noSuchMethod( Invocation.method(#pigeon_copy, []), - returnValue: _FakeZoomState_43( + returnValue: _FakeZoomState_41( this, Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: _FakeZoomState_43( + returnValueForMissingStub: _FakeZoomState_41( this, Invocation.method(#pigeon_copy, []), ), 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 1c3e5d3a330..e81ae4a02df 100644 --- a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart +++ b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart @@ -4,7 +4,6 @@ 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_proxy.dart'; import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' @@ -39,6 +38,11 @@ void main() { AndroidCameraCameraX.deviceOrientationChangedStreamController.close(); }); + setUp(() { + PigeonOverrides.pigeon_reset(); + GenericsPigeonOverrides.reset(); + }); + /// Sets up mock CameraSelector and mock ProcessCameraProvider used to /// select test camera when `availableCameras` is called. /// @@ -79,42 +83,29 @@ void main() { return mockProcessCameraProvider; } - /// Returns CameraXProxy used to mock all calls to native Android in + /// Set up overrides used to mock all calls to native Android in /// the `availableCameras` and `createCameraWithSettings` methods, with /// a DeviceORientationManager specified. /// /// Useful for tests that need a reference to a DeviceOrientationManager. - CameraXProxy getProxyForCreatingTestCameraWithDeviceOrientationManager( + void setUpOverridesForCreatingTestCameraWithDeviceOrientationManager( DeviceOrientationManager deviceOrientationManager, { required MockProcessCameraProvider mockProcessCameraProvider, required CameraSelector Function({ LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, + dynamic cameraInfoForFilter, }) createCameraSelector, required bool handlesCropAndRotation, - }) => CameraXProxy( - getInstanceProcessCameraProvider: - ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) async => mockProcessCameraProvider, - newCameraSelector: createCameraSelector, - newPreview: + }) { + PigeonOverrides.processCameraProvider_getInstance = () async => + mockProcessCameraProvider; + PigeonOverrides.cameraSelector_new = createCameraSelector; + PigeonOverrides.preview_new = ({ int? targetRotation, CameraIntegerRange? targetFpsRange, ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { final preview = MockPreview(); when( @@ -125,161 +116,88 @@ void main() { ResolutionInfo.pigeon_detached(resolution: MockCameraSize()), ); return preview; - }, - newImageCapture: + }; + PigeonOverrides.imageCapture_new = ({ int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockImageCapture(), - newRecorder: + }) => MockImageCapture(); + PigeonOverrides.recorder_new = ({ int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockRecorder(), - withOutputVideoCapture: + }) => MockRecorder(); + PigeonOverrides.videoCapture_withOutput = ({ required VideoOutput videoOutput, CameraIntegerRange? targetFpsRange, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { return MockVideoCapture(); - }, - newImageAnalysis: + }; + PigeonOverrides.imageAnalysis_new = ({ int? targetRotation, CameraIntegerRange? targetFpsRange, ResolutionSelector? resolutionSelector, int? outputImageFormat, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, }) { return MockImageAnalysis(); - }, - newResolutionStrategy: + }; + PigeonOverrides.resolutionStrategy_new = ({ 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: + }; + PigeonOverrides.resolutionSelector_new = ({ 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, - }) { + }; + PigeonOverrides.fallbackStrategy_lowerQualityOrHigherThan = + ({required VideoQuality quality}) { return MockFallbackStrategy(); - }, - lowerQualityThanFallbackStrategy: - ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { + }; + PigeonOverrides.fallbackStrategy_lowerQualityThan = + ({required VideoQuality quality}) { return MockFallbackStrategy(); - }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final 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, - }) { + }; + PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) { + final camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return camera2cameraInfo; + }; + PigeonOverrides.qualitySelector_from = + ({required VideoQuality quality, FallbackStrategy? fallbackStrategy}) { 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: + }; + GenericsPigeonOverrides.observerNew = + ({required void Function(Observer, T) onChanged}) { + return Observer.detached(onChanged: onChanged); + }; + PigeonOverrides.systemServicesManager_new = ({ 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: + }; + PigeonOverrides.deviceOrientationManager_new = ({ required void Function(DeviceOrientationManager, String) onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => deviceOrientationManager, - newAspectRatioStrategy: + }) => deviceOrientationManager; + PigeonOverrides.aspectRatioStrategy_new = ({ 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(); when( @@ -289,34 +207,24 @@ void main() { 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, - }) { + }; + PigeonOverrides.resolutionFilter_createWithOnePreferredSize = + ({required CameraSize preferredSize}) { return MockResolutionFilter(); - }, - ); + }; + } - /// Returns CameraXProxy used to mock all calls to native Android in + /// Set up overrides used to mock all calls to native Android in /// the `availableCameras` and `createCameraWithSettings` methods, with /// functions `getUiOrientation` and `getDefaultDisplayRotation` specified /// to create a mock DeviceOrientationManager. /// /// Useful for tests that do not need a reference to a DeviceOrientationManager. - CameraXProxy getProxyForCreatingTestCamera({ + void setUpOverridesForCreatingTestCamera({ required MockProcessCameraProvider mockProcessCameraProvider, required CameraSelector Function({ LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, + dynamic cameraInfoForFilter, }) createCameraSelector, required bool handlesCropAndRotation, @@ -330,7 +238,7 @@ void main() { when( deviceOrientationManager.getDefaultDisplayRotation(), ).thenAnswer((_) => getDefaultDisplayRotation()); - return getProxyForCreatingTestCameraWithDeviceOrientationManager( + setUpOverridesForCreatingTestCameraWithDeviceOrientationManager( deviceOrientationManager, mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: createCameraSelector, @@ -341,21 +249,10 @@ void main() { /// Returns function that a CameraXProxy can use to select the front camera. MockCameraSelector Function({ LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, + dynamic cameraInfoForFilter, }) createCameraSelectorForFrontCamera(MockCameraSelector mockCameraSelector) { - return ({ - LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { + return ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { switch (requireLensFacing) { case LensFacing.front: return mockCameraSelector; @@ -371,21 +268,10 @@ void main() { /// Returns function that a CameraXProxy can use to select the back camera. MockCameraSelector Function({ LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, + dynamic cameraInfoForFilter, }) createCameraSelectorForBackCamera(MockCameraSelector mockCameraSelector) { - return ({ - LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { + return ({LensFacing? requireLensFacing, dynamic cameraInfoForFilter}) { switch (requireLensFacing) { case LensFacing.back: return mockCameraSelector; @@ -478,12 +364,8 @@ void main() { late DeviceOrientation testInitialDeviceOrientation; late MockProcessCameraProvider mockProcessCameraProvider; late MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) fakeCreateCameraSelector; late MediaSettings testMediaSettings; @@ -514,7 +396,7 @@ void main() { (WidgetTester tester) async { // Mock calls to CameraXProxy. Most importantly, tell camera that handlesCropAndRotation is true, set initial device // orientation to landscape right, and set initial default display rotation to 0 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: fakeCreateCameraSelector, handlesCropAndRotation: true, @@ -569,7 +451,7 @@ void main() { (WidgetTester tester) async { // Mock calls to CameraXProxy. Most importantly, tell camera that handlesCropAndRotation is true, set initial device // orientation to landscape right, and set initial default display rotation to 90 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: fakeCreateCameraSelector, handlesCropAndRotation: true, @@ -622,7 +504,7 @@ void main() { (WidgetTester tester) async { // Mock calls to CameraXProxy. Most importantly, tell camera that handlesCropAndRotation is true, set initial device // orientation to landscape right, and set initial default display rotation to 180 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: fakeCreateCameraSelector, handlesCropAndRotation: true, @@ -675,7 +557,7 @@ void main() { (WidgetTester tester) async { // Mock calls to CameraXProxy. Most importantly, tell camera that handlesCropAndRotation is true, set initial device // orientation to landscape right, and set initial default display rotation to 270 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: fakeCreateCameraSelector, handlesCropAndRotation: true, @@ -733,12 +615,8 @@ void main() { late int testInitialDefaultDisplayRotation; late MockProcessCameraProvider mockProcessCameraProvider; late MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) fakeCreateCameraSelector; late MediaSettings testMediaSettings; @@ -769,7 +647,7 @@ void main() { (WidgetTester tester) async { // Mock calls to CameraXProxy. Most importantly, tell camera that handlesCropAndRotation is true, set initial device // orientation to portrait up, and set initial default display rotation to 90 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: fakeCreateCameraSelector, handlesCropAndRotation: true, @@ -822,7 +700,7 @@ void main() { (WidgetTester tester) async { // Mock calls to CameraXProxy. Most importantly, tell camera that handlesCropAndRotation is true, set initial device // orientation to landscape left, and set initial default display rotation to 90 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: fakeCreateCameraSelector, handlesCropAndRotation: true, @@ -875,7 +753,7 @@ void main() { (WidgetTester tester) async { // Mock calls to CameraXProxy. Most importantly, tell camera that handlesCropAndRotation is true, set initial device // orientation to portrait down, and set initial default display rotation to 90 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: fakeCreateCameraSelector, handlesCropAndRotation: true, @@ -928,7 +806,7 @@ void main() { (WidgetTester tester) async { // Mock calls to CameraXProxy. Most importantly, tell camera that handlesCropAndRotation is true, set initial device // orientation to landscape right, and set initial default display rotation to 90 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: fakeCreateCameraSelector, handlesCropAndRotation: true, @@ -991,12 +869,8 @@ void main() { // These settings do not matter for this test. final mockFrontCameraSelector = MockCameraSelector(); final MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); @@ -1020,8 +894,7 @@ void main() { mockDeviceOrientationManager.getDefaultDisplayRotation(), ).thenAnswer((_) => Future.value(Surface.rotation0)); - camera - .proxy = getProxyForCreatingTestCameraWithDeviceOrientationManager( + setUpOverridesForCreatingTestCameraWithDeviceOrientationManager( mockDeviceOrientationManager, mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1101,12 +974,8 @@ void main() { // These settings do not matter for this test. final mockFrontCameraSelector = MockCameraSelector(); final MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); @@ -1120,7 +989,7 @@ void main() { // Tell camera that handlesCropAndRotation is true, set camera initial device orientation // to portrait up, set initial default display rotation to 270 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: true, @@ -1199,11 +1068,7 @@ void main() { late MockCameraSelector mockFrontCameraSelector; late MockCameraSelector Function({ LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForFrontCamera; late MockProcessCameraProvider mockProcessCameraProviderForFrontCamera; @@ -1237,7 +1102,7 @@ void main() { (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( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1298,7 +1163,7 @@ void main() { (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( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1359,7 +1224,7 @@ void main() { (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( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1420,7 +1285,7 @@ void main() { (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( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1487,12 +1352,8 @@ void main() { late MockCameraSelector mockFrontCameraSelector; late MockProcessCameraProvider mockProcessCameraProviderForFrontCamera; late MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForFrontCamera; late Future Function() proxyGetUiOrientation; @@ -1525,7 +1386,7 @@ void main() { (WidgetTester tester) async { // Set up test to use front camera, tell camera that handlesCropAndRotation is false, // set camera initial default display rotation to 0 degrees. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1586,7 +1447,7 @@ void main() { (WidgetTester tester) async { // Set up test to use front camera, tell camera that handlesCropAndRotation is false, // set camera initial default display rotation to 0 degrees. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1651,7 +1512,7 @@ void main() { (WidgetTester tester) async { // Set up test to use front camera, tell camera that handlesCropAndRotation is false, // set camera initial default display rotation to 0 degrees. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1714,7 +1575,7 @@ void main() { (WidgetTester tester) async { // Set up test to use front camera, tell camera that handlesCropAndRotation is false, // set camera initial default display rotation to 0 degrees. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1789,12 +1650,8 @@ void main() { // media settings for test front camera. final mockFrontCameraSelector = MockCameraSelector(); final MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); @@ -1817,8 +1674,7 @@ void main() { when( mockDeviceOrientationManager.getDefaultDisplayRotation(), ).thenAnswer((_) => Future.value(Surface.rotation0)); - camera - .proxy = getProxyForCreatingTestCameraWithDeviceOrientationManager( + setUpOverridesForCreatingTestCameraWithDeviceOrientationManager( mockDeviceOrientationManager, mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, @@ -1910,11 +1766,7 @@ void main() { final mockFrontCameraSelector = MockCameraSelector(); final MockCameraSelector Function({ LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); @@ -1931,7 +1783,7 @@ void main() { // Set up test to use front camera and tell camera that handlesCropAndRotation is false, // set camera initial device orientation to landscape left, set initial default display // rotation to 90 degrees clockwise. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, @@ -2025,12 +1877,8 @@ void main() { late int cameraId; late MockCameraSelector mockBackCameraSelector; late MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForBackCamera; late Future Function() proxyGetDefaultDisplayRotation; @@ -2069,7 +1917,7 @@ void main() { // Set up test to use back camera, tell camera that handlesCropAndRotation is false, // set camera initial device orientation to landscape left. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, createCameraSelector: proxyCreateCameraSelectorForBackCamera, getDefaultDisplayRotation: proxyGetDefaultDisplayRotation, @@ -2129,7 +1977,7 @@ void main() { // Set up test to use back camera, tell camera that handlesCropAndRotation is false, // set camera initial device orientation to landscape left. - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, createCameraSelector: proxyCreateCameraSelectorForBackCamera, getDefaultDisplayRotation: proxyGetDefaultDisplayRotation, @@ -2216,16 +2064,12 @@ void main() { ); // Set up front camera selection and initial device orientation as landscape right. final MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, getDefaultDisplayRotation: proxyGetDefaultDisplayRotation, @@ -2295,16 +2139,12 @@ void main() { // Set up front camera selection and initial device orientation as landscape right. final MockCameraSelector Function({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, LensFacing? requireLensFacing, - CameraInfo? cameraInfoForFilter, + dynamic cameraInfoForFilter, }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForBackCamera(mockBackCameraSelector); - camera.proxy = getProxyForCreatingTestCamera( + setUpOverridesForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, getDefaultDisplayRotation: proxyGetDefaultDisplayRotation,