From 743b38de8fbfaae95fd4615545e3953a5b745ffb Mon Sep 17 00:00:00 2001 From: camsim99 Date: Mon, 1 May 2023 16:34:43 -0700 Subject: [PATCH 01/24] Merge remote-tracking branch 'upstream/main' into camx_occ --- .../camerax/CameraInfoHostApiImpl.java | 36 +++++++++++++++++++ .../test/camera_info_test.mocks.dart | 8 +++++ 2 files changed, 44 insertions(+) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java index 83eb359cdb5..f45e3ec6f23 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java @@ -92,4 +92,40 @@ public Long getZoomState(@NonNull Long identifier) { return instanceManager.getIdentifierForStrongReference(zoomState); } + + /** + * Retrieves the {@link ExposureState} of the {@link CameraInfo} with the specified identifier. + */ + @Override + @NonNull + public Long getExposureState(@NonNull Long identifier) { + CameraInfo cameraInfo = + (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier)); + ExposureState exposureState = cameraInfo.getExposureState(); + + ExposureStateFlutterApiImpl exposureStateFlutterApiImpl = + new ExposureStateFlutterApiImpl(binaryMessenger, instanceManager); + exposureStateFlutterApiImpl.create(exposureState, result -> {}); + + return instanceManager.getIdentifierForStrongReference(exposureState); + } + + /** + * Retrieves the current {@link ZoomState} value of the {@link CameraInfo} with the specified + * identifier. + */ + @NonNull + @Override + public Long getZoomState(@NonNull Long identifier) { + CameraInfo cameraInfo = + (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier)); + // TODO(camsim99): Create/return LiveData once https://github.com/flutter/packages/pull/3419 lands. + ZoomState zoomState = cameraInfo.getZoomState().getValue(); + + ZoomStateFlutterApiImpl zoomStateFlutterApiImpl = + new ZoomStateFlutterApiImpl(binaryMessenger, instanceManager); + zoomStateFlutterApiImpl.create(zoomState, result -> {}); + + return instanceManager.getIdentifierForStrongReference(zoomState); + } } diff --git a/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart index 074be3bc4ac..58a3e871669 100644 --- a/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart @@ -54,6 +54,14 @@ class MockTestCameraInfoHostApi extends _i1.Mock ) as int); @override + int getLiveCameraState(int? identifier) => (super.noSuchMethod( + Invocation.method( + #getLiveCameraState, + [identifier], + ), + returnValue: 0, + ) as int); + @override int getExposureState(int? identifier) => (super.noSuchMethod( Invocation.method( #getExposureState, From 4427ac6b3f3c728eb10756d78dc2c5e527567fb0 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 10 May 2023 09:39:45 -0700 Subject: [PATCH 02/24] Undo changes --- .../camerax/CameraInfoHostApiImpl.java | 36 ------------------- 1 file changed, 36 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java index f45e3ec6f23..83eb359cdb5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java @@ -92,40 +92,4 @@ public Long getZoomState(@NonNull Long identifier) { return instanceManager.getIdentifierForStrongReference(zoomState); } - - /** - * Retrieves the {@link ExposureState} of the {@link CameraInfo} with the specified identifier. - */ - @Override - @NonNull - public Long getExposureState(@NonNull Long identifier) { - CameraInfo cameraInfo = - (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier)); - ExposureState exposureState = cameraInfo.getExposureState(); - - ExposureStateFlutterApiImpl exposureStateFlutterApiImpl = - new ExposureStateFlutterApiImpl(binaryMessenger, instanceManager); - exposureStateFlutterApiImpl.create(exposureState, result -> {}); - - return instanceManager.getIdentifierForStrongReference(exposureState); - } - - /** - * Retrieves the current {@link ZoomState} value of the {@link CameraInfo} with the specified - * identifier. - */ - @NonNull - @Override - public Long getZoomState(@NonNull Long identifier) { - CameraInfo cameraInfo = - (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier)); - // TODO(camsim99): Create/return LiveData once https://github.com/flutter/packages/pull/3419 lands. - ZoomState zoomState = cameraInfo.getZoomState().getValue(); - - ZoomStateFlutterApiImpl zoomStateFlutterApiImpl = - new ZoomStateFlutterApiImpl(binaryMessenger, instanceManager); - zoomStateFlutterApiImpl.create(zoomState, result -> {}); - - return instanceManager.getIdentifierForStrongReference(zoomState); - } } From 3f9cf35131013c5c28381fa105c061857242f534 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Sun, 26 Nov 2023 17:41:38 -0800 Subject: [PATCH 03/24] Start wrapping --- .../lib/src/camera_control.dart | 58 ++++++++++ ...splay_oriented_metering_point_factory.dart | 38 +++++++ .../lib/src/focus_metering_action.dart | 107 ++++++++++++++++++ .../lib/src/focus_metering_result.dart | 103 +++++++++++++++++ .../lib/src/metering_point.dart | 102 +++++++++++++++++ .../lib/src/metering_point_factory.dart | 15 +++ .../pigeons/camerax_library.dart | 43 +++++++ 7 files changed, 466 insertions(+) create mode 100644 packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart create mode 100644 packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart create mode 100644 packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart create mode 100644 packages/camera/camera_android_camerax/lib/src/metering_point.dart create mode 100644 packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart diff --git a/packages/camera/camera_android_camerax/lib/src/camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera_control.dart index 57b84772be3..b1f74faec22 100644 --- a/packages/camera/camera_android_camerax/lib/src/camera_control.dart +++ b/packages/camera/camera_android_camerax/lib/src/camera_control.dart @@ -7,6 +7,7 @@ import 'package:meta/meta.dart' show immutable; import 'android_camera_camerax_flutter_api_impls.dart'; import 'camerax_library.g.dart'; +import 'focus_metering_result.dart'; import 'instance_manager.dart'; import 'java_object.dart'; import 'system_services.dart'; @@ -48,6 +49,26 @@ class CameraControl extends JavaObject { Future setZoomRatio(double ratio) async { return _api.setZoomRatioFromInstance(this, ratio); } + + /// Set the exposure compensation value for related [Camera]. + /// + /// Returns null if the exposure compensation index failed to be set. + Future setExposureCompensationIndex(int index) async { + return _api.setExposureCompensationIndexFromInstance(this, index); + } + + /// Starts a focus and metering action configured by the [FocusMeteringAction]. + /// + /// will trigger an auto focus action and enable auto focus (AF)/auto exposure + /// (AE)/auto white balance (AWB) metering regions. + Future startFocusAndMetering( + FocusMeteringAction action) { + return _api.startFocusAndMeteringFromInstance(this, action); + } + + /// Cancels current FocusMeteringAction and clears AF/AE/AWB regions. + Future cancelFocusAndMetering() => + _api.cancelFocusAndMeteringFromInstance(this); } /// Host API implementation of [CameraControl]. @@ -94,6 +115,43 @@ class _CameraControlHostApiImpl extends CameraControlHostApi { 'Zoom ratio was unable to be set. If ratio was not out of range, newer value may have been set; otherwise, the camera may be closed.'); } } + + /// Sets exposure compensation index for specified [CameraControl] instance. + Future setExposureCompensationIndexFromInstance( + CameraControl instance, int index) async { + final int identifier = instanceManager.getIdentifier(instance)!; + try { + return setExposureCompensationIndex(identifier, index); + } on PlatformException catch (e) { + SystemServices.cameraErrorStreamController.add( + e.message ?? 'Setting the camera xposure compensation index failed.'); + return Future.value(); + } + } + + /// Starts a focus and metering action configured by the [FocusMeteringAction] + /// for the specified [CameraControl] instance. + Future startFocusAndMeteringFromInstance( + CameraControl instance, FocusMeteringAction action) async { + final int cameraControlIdentifier = + instanceManager.getIdentifier(instance)!; + final int actionIdentifier = instanceManager.getIdentifier(action)!; + try { + return startFocusAndMetering(cameraControlIdentifier, actionIdentifier); + } on PlatformException catch (e) { + SystemServices.cameraErrorStreamController + .add(e.message ?? 'Starting focus and metering failed.'); + return Future.value(); + } + } + + /// Cancels current FocusMeteringAction and clears AF/AE/AWB regions for the + /// specified [CameraControl] instance. + Future cancelFocusAndMeteringFromInstance( + CameraControl instance) async { + final int identifier = instanceManager.getIdentifier(instance)!; + await cancelFocusAndMetering(identifier); + } } /// Flutter API implementation of [CameraControl]. diff --git a/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart b/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart new file mode 100644 index 00000000000..25a349be5f6 --- /dev/null +++ b/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart @@ -0,0 +1,38 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/services.dart' show BinaryMessenger; +import 'package:meta/meta.dart' show immutable; + +import 'android_camera_camerax_flutter_api_impls.dart'; +import 'camerax_library.g.dart'; +import 'instance_manager.dart'; +import 'java_object.dart'; +import 'metering_point_factory.dart'; + +/// somethin +@immutable +class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { + /// Creates a [MeteringPoint] that is not automatically attached to a + /// native object. + MeteringPoint.detached({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + }) : super.detached( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + ) { + _api = _MeteringPointHostApiImpl( + binaryMessenger: binaryMessenger, instanceManager: instanceManager); + AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); + } + + late final _MeteringPointHostApiImpl _api; + + /// somethin + @override + Future getDefaultPointSize() { + return Future.value(3); + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart new file mode 100644 index 00000000000..4a2d81e9da6 --- /dev/null +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -0,0 +1,107 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/services.dart' show BinaryMessenger; +import 'package:meta/meta.dart' show immutable; + +import 'camerax_library.g.dart'; +import 'instance_manager.dart'; +import 'java_object.dart'; + +/// somethin +@immutable +class FocusMeteringAction extends JavaObject { + /// Creates a [FocusMeteringAction]. + FocusMeteringAction({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + required this.meteringPoint, + required this.meteringMode, + }) : super.detached( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + ) { + _api = FocusMeteringActionHostApiImpl( + binaryMessenger: binaryMessenger, instanceManager: instanceManager); + _api.createFromInstance(this, meteringPoint, meteringMode); + } + + /// Creates a [FocusMeteringAction] that is not automatically attached to a + /// native object. + FocusMeteringAction.detached({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + required this.meteringPoint, + required this.meteringMode, + }) : super.detached( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + ) { + _api = _FocusMeteringActionHostApiImpl( + binaryMessenger: binaryMessenger, instanceManager: instanceManager); + } + + late final _FocusMeteringActionHostApiImpl _api; + + /// something + final MeteringPoint meteringPoint; + + /// something + final int meteringMode; + + /// Flag for metering mode that indicates the AF (Auto Focus) region is + /// enabled. + /// + /// An autofocus scan is also triggered when FLAG_AF is assigned. + static const int flagAf = 1; + + /// Flag for metering mode that indicates the AE (Auto Exposure) + /// region is enabled. + static const int flagAe = 2; + + /// Flag for metering mode that indicates the AWB (Auto White Balance) region + /// is enabled. + static const int flagAwb = 4; +} + +/// Host API implementation of [FocusMeteringAction]. +class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { + /// Constructs a [FocusMeteringActionHostApiImpl]. + /// + /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, + /// which routes to the host platform. + /// + /// An [instanceManager] is typically passed when a copy of an instance + /// contained by an [InstanceManager] is being created. If left null, it + /// will default to the global instance defined in [JavaObject]. + _FocusMeteringActionHostApiImpl( + {this.binaryMessenger, InstanceManager? instanceManager}) { + this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; + } + + /// Receives binary data across the Flutter platform barrier. + /// + /// If it is null, the default [BinaryMessenger] will be used which routes to + /// the host platform. + final BinaryMessenger? binaryMessenger; + + /// Maintains instances stored to communicate with native language objects. + late final InstanceManager instanceManager; + + /// Creates an [FocusMeteringAction] instance with the flash mode and target resolution + /// if specified. + void createFromInstance(FocusMeteringAction instance, + MeteringPoint meteringPoint, int meteringMode) { + final int identifier = instanceManager.addDartCreatedInstance(instance, + onCopy: (FocusMeteringAction original) { + return FocusMeteringAction.detached( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + meteringPoint: meteringPoint, + meteringMode: meteringMode); + }); + create(identifier, instanceManager.getIdentifier(meteringPoint)!, + meteringMode); + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart new file mode 100644 index 00000000000..8484c72496d --- /dev/null +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart @@ -0,0 +1,103 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/services.dart' show BinaryMessenger; +import 'package:meta/meta.dart' show immutable; + +// TODO: add new flutter apis +import 'android_camera_camerax_flutter_api_impls.dart'; +import 'camerax_library.g.dart'; +import 'instance_manager.dart'; +import 'java_object.dart'; + +/// somethin +@immutable +class FocusMeteringResult extends JavaObject { + /// Creates a [FocusMeteringResult] that is not automatically attached to a + /// native object. + FocusMeteringResult.detached({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + }) : super.detached( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + ) { + _api = _FocusMeteringResultHostApiImpl( + binaryMessenger: binaryMessenger, instanceManager: instanceManager); + AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); + } + + late final _FocusMeteringResultHostApiImpl _api; + + /// somethin + Future isFocusSuccessful() => _api.isFocusSuccessfulFromInstance(this); +} + +/// Host API implementation of [FocusMeteringResult]. +class _FocusMeteringResultHostApiImpl extends FocusMeteringResultHostApi { + /// Constructs a [FocusMeteringActionHostApiImpl]. + /// + /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, + /// which routes to the host platform. + /// + /// An [instanceManager] is typically passed when a copy of an instance + /// contained by an [InstanceManager] is being created. If left null, it + /// will default to the global instance defined in [JavaObject]. + _FocusMeteringResultHostApiImpl( + {this.binaryMessenger, InstanceManager? instanceManager}) { + this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; + } + + /// Receives binary data across the Flutter platform barrier. + /// + /// If it is null, the default [BinaryMessenger] will be used which routes to + /// the host platform. + final BinaryMessenger? binaryMessenger; + + /// Maintains instances stored to communicate with native language objects. + late final InstanceManager instanceManager; + + /// somethin + Future isFocusSuccessfulFromInstance(FocusMeteringResult instance) { + final int identifier = instanceManager.getIdentifier(instance)!; + return isFocusSuccessful(identifier); + } +} + +/// Flutter API implementation of [FocusMeteringResult]. +class FocusMeteringResultFlutterApiImpl extends FocusMeteringResultFlutterApi { + /// Constructs a [FocusMeteringResultFlutterApiImpl]. + /// + /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, + /// which routes to the host platform. + /// + /// An [instanceManager] is typically passed when a copy of an instance + /// contained by an [InstanceManager] is being created. If left null, it + /// will default to the global instance defined in [JavaObject]. + FocusMeteringResultFlutterApiImpl({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + }) : _binaryMessenger = binaryMessenger, + _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; + + /// Receives binary data across the Flutter platform barrier. + final BinaryMessenger? _binaryMessenger; + + /// Maintains instances stored to communicate with native language objects. + final InstanceManager _instanceManager; + + @override + void create(int identifier) { + _instanceManager.addHostCreatedInstance( + FocusMeteringResult.detached( + binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), + identifier, + onCopy: (FocusMeteringResult original) { + return FocusMeteringResult.detached( + binaryMessenger: _binaryMessenger, + instanceManager: _instanceManager); + }, + ); + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point.dart b/packages/camera/camera_android_camerax/lib/src/metering_point.dart new file mode 100644 index 00000000000..f5242201431 --- /dev/null +++ b/packages/camera/camera_android_camerax/lib/src/metering_point.dart @@ -0,0 +1,102 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/services.dart' show BinaryMessenger; +import 'package:meta/meta.dart' show immutable; + +import 'android_camera_camerax_flutter_api_impls.dart'; +import 'camerax_library.g.dart'; +import 'instance_manager.dart'; +import 'java_object.dart'; + +/// somethin +@immutable +class MeteringPoint extends JavaObject { + /// Creates a [MeteringPoint] that is not automatically attached to a + /// native object. + MeteringPoint.detached({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + }) : super.detached( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + ) { + _api = _MeteringPointHostApiImpl( + binaryMessenger: binaryMessenger, instanceManager: instanceManager); + AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); + } + + late final _MeteringPointHostApiImpl _api; + + /// somethin + Future getSize() => _api.getSizeFromInstance(this); +} + +/// Host API implementation of [MeteringPoint]. +class _MeteringPointHostApiImpl extends MeteringPointHostApi { + /// Constructs a [FocusMeteringActionHostApiImpl]. + /// + /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, + /// which routes to the host platform. + /// + /// An [instanceManager] is typically passed when a copy of an instance + /// contained by an [InstanceManager] is being created. If left null, it + /// will default to the global instance defined in [JavaObject]. + _MeteringPointHostApiImpl( + {this.binaryMessenger, InstanceManager? instanceManager}) { + this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; + } + + /// Receives binary data across the Flutter platform barrier. + /// + /// If it is null, the default [BinaryMessenger] will be used which routes to + /// the host platform. + final BinaryMessenger? binaryMessenger; + + /// Maintains instances stored to communicate with native language objects. + late final InstanceManager instanceManager; + + /// somethin + Future getSizeFromInstance(MeteringPoint instance) { + final int identifier = instanceManager.getIdentifier(instance)!; + return getSize(identifier); + } +} + +/// Flutter API implementation of [MeteringPoint]. +class MeteringPointFlutterApiImpl extends MeteringPointFlutterApi { + /// Constructs a [MeteringPointFlutterApiImpl]. + /// + /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, + /// which routes to the host platform. + /// + /// An [instanceManager] is typically passed when a copy of an instance + /// contained by an [InstanceManager] is being created. If left null, it + /// will default to the global instance defined in [JavaObject]. + MeteringPointFlutterApiImpl({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + }) : _binaryMessenger = binaryMessenger, + _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; + + /// Receives binary data across the Flutter platform barrier. + final BinaryMessenger? _binaryMessenger; + + /// Maintains instances stored to communicate with native language objects. + final InstanceManager _instanceManager; + + @override + void create(int identifier) { + _instanceManager.addHostCreatedInstance( + MeteringPoint.detached( + binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), + identifier, + onCopy: (MeteringPoint original) { + return MeteringPoint.detached( + binaryMessenger: _binaryMessenger, + instanceManager: _instanceManager); + }, + ); + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart b/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart new file mode 100644 index 00000000000..04fd3d38563 --- /dev/null +++ b/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart @@ -0,0 +1,15 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'metering_point.dart'; + +/// somethin +abstract class MeteringPointFactory { + /// somethin + Future createPoint(int x, int y, int? size); + + /// something + Future getDefaultPointSize(); +} +// here \ No newline at end of file diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 94285d148df..9defed174dd 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -444,9 +444,52 @@ abstract class CameraControlHostApi { @async void setZoomRatio(int identifier, double ratio); + + @async + int setExposureCompensationIndex(int identifier, int index); + + @async + int startFocusAndMetering(int identifier, int focusMeteringActionId); + + @async + void cancelFocusAndMetering(int identiier); } @FlutterApi() abstract class CameraControlFlutterApi { void create(int identifier); } + +@HostApi(dartHostTestHandler: 'TestFocusMeteringActionHostApi') +abstract class FocusMeteringActionHostApi { + void create(int identifier, int meteringPointId, int meteringMode); +} + +@HostApi() +abstract class FocusMeteringResultHostApi { + bool isFocusSuccessful(int identifier); +} + +@FlutterApi() +abstract class FocusMeteringResultFlutterApi { + void create(int identifier); +} + +@HostApi(dartHostTestHandler: 'TestMeteringPointHostApi') +abstract class MeteringPointHostApi { + int getSize(int identifier); +} + +@FlutterApi() +abstract class MeteringPointFlutterApi { + void create(int identifier); +} + +@HostApi(dartHostTestHandler: 'TestDisplayOrientedMeteringPointFactoryHostApi') +abstract class DisplayOrientedMeteringPointFactoryHostApi { + void create(int identifier, int cameraInfoId, int width, int height); + + int createPoint(int x, int y, int? size); + + int getDefaultPointSize(); +} From c37e8cd8e53c8f5025aa05e06c9168049efbd9bf Mon Sep 17 00:00:00 2001 From: camsim99 Date: Tue, 12 Dec 2023 16:56:36 -0800 Subject: [PATCH 04/24] Progress, left todo as marker --- .../camerax/CameraControlHostApiImpl.java | 46 ++++++++- .../FocusMeteringActionFlutterApiImpl.java | 57 +++++++++++ .../FocusMeteringActionHostApiImpl.java | 97 +++++++++++++++++++ .../camerax/QualitySelectorHostApiImpl.java | 20 ++-- .../lib/src/camera_control.dart | 5 +- ...splay_oriented_metering_point_factory.dart | 6 +- .../lib/src/focus_metering_action.dart | 71 +++++++++++++- .../lib/src/metering_point_factory.dart | 2 +- .../pigeons/camerax_library.dart | 9 +- 9 files changed, 292 insertions(+), 21 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java index e70714a8bff..91f64eb0c6e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java @@ -8,6 +8,8 @@ import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.camera.core.CameraControl; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.FocusMeteringResult; import androidx.core.content.ContextCompat; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; @@ -74,6 +76,31 @@ public void onFailure(Throwable t) { }, ContextCompat.getMainExecutor(context)); } + + @NonNull + public void startFocusAndMetering( + @NonNull CameraControl cameraControl, + @NonNull FocusMeteringAction focusMeteringAction, + @NonNull GeneratedCameraXLibrary.Result result) { + ListenableFuture focusMeteringResultFuture = + cameraControl.startFocusAndMetering(action); + + Futures.addCallback( + focusMeteringResultFuture, + new FutureCallback() { + public void onSuccess(FocusMeteringResult focusMeteringResult) { + final FocusMeteringResultFlutterApiImpl flutterApi = + new FocusMeteringResultFlutterApiImpl(binaryMessenger, instanceManager); + flutterApi.create(focusMeteringResult, reply -> {}); + result.success(instanceManager.getIdentifierForStrongReference(focusMeteringResult)); + } + + public void onFailure(Throwable t) { + result.error(t); + } + }, + ContextCompat.getMainExecutor(context)); + } } /** @@ -119,8 +146,7 @@ public void enableTorch( @NonNull Long identifier, @NonNull Boolean torch, @NonNull GeneratedCameraXLibrary.Result result) { - proxy.enableTorch( - Objects.requireNonNull(instanceManager.getInstance(identifier)), torch, result); + proxy.enableTorch(getCameraControlInstance(identifier), torch, result); } @Override @@ -128,7 +154,19 @@ public void setZoomRatio( @NonNull Long identifier, @NonNull Double ratio, @NonNull GeneratedCameraXLibrary.Result result) { - proxy.setZoomRatio( - Objects.requireNonNull(instanceManager.getInstance(identifier)), ratio, result); + proxy.setZoomRatio(getCameraControlInstance(identifier), ratio, result); + } + + @Override + public void startFocusAndMetering( + @NonNull Long identifier, @NonNull Long focusMeteringActionId, @NonNull Result result) { + proxy.startFocusAndMetering( + getCameraControlInstance(identifier), + Objects.requireNonNull(instanceManager.getInstance(focusMeteringActionId)), + result); + } + + private CameraControl getCameraControlInstance(@NonNull Long identifier) { + return Objects.requireNonNull(instanceManager.getInstance(identifier)); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java new file mode 100644 index 00000000000..ef8d192b76b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java @@ -0,0 +1,57 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; +import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringActionFlutterApi; + +/** + * Flutter API implementation for {@link FocusMeteringAction}. + * + *

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

This class may handle instantiating and adding native object instances that are attached to a + * Dart instance or handle method calls on the associated native class or an instance of the class. + */ +public class FocusMeteringActionHostApiImpl implements FocusMeteringActionHostApi { + private final InstanceManager instanceManager; + + private final FocusMeteringActionProxy proxy; + + /** Proxy for constructors and static method of {@link FocusMeteringAction}. */ + @VisibleForTesting + public static class FocusMeteringActionProxy { + /** Creates an instance of {@link FocusMeteringAction}. */ + public @NonNull FocusMeteringAction create( + @NonNull MeteringPoint meteringPoint, @Nullable meteringMode) { + FocusMeteringAction.Builder focusMeteringActionBuilder; + if (meteringMode == null) { + focusMeteringActionBuilder = new FocusMeteringAction.Builder(meteringPoint); + } else { + focusMeteringActionBuilder = new FocusMeteringAction.Builder(meteringPoint, meteringMode); + } + + return focusMeteringActionBuilder.build(); + } + + public @NonNull FocusMeteringAction create( + @NonNull FocusMeteringAction focusMeteringAction, + @NonNull MeteringPoint meteringPoint, @Nullable meteringMode) { + FocusMetering newFocusMeteringAction; + if (meteringMode == null) { + newFocusMeteringAction = focusMeteringAction.addPoint(meteringPoint); + } else { + newFocusMeteringAction = focusMeteringAction.addPoint(meteringPoint, meteringMode); + } + + return newFocusMeteringAction; + } + } + + /** + * Constructs a {@link FocusMeteringActionHostApiImpl}. + * + * @param instanceManager maintains instances stored to communicate with attached Dart objects + */ + public FocusMeteringActionHostApiImpl(@NonNull InstanceManager instanceManager) { + this(instanceManager, new FocusMeteringActionProxy()); + } + + /** + * Constructs a {@link FocusMeteringActionHostApiImpl}. + * + * @param instanceManager maintains instances stored to communicate with attached Dart objects + * @param proxy proxy for constructors and static method of {@link FocusMeteringAction} + */ + FocusMeteringActionHostApiImpl( + @NonNull InstanceManager instanceManager, @NonNull FocusMeteringActionProxy proxy) { + this.instanceManager = instanceManager; + this.proxy = proxy; + } + + + @Override + public void create(@NonNull Long identifier, @NonNull Long meteringPointId, @Nullable Long meteringMode) { + instanceManager.addDartCreatedInstance( + proxy.create(Objects.requireNonNull(instanceManager.getInstance(meteringPointId)), meteringMode), identifier); + } + + @Override + @NonNull + Long addPoint(@NonNull Long identifier, @NonNull Long meteringPointId, @Nullable Long meteringMode) { + FocusMeteringAction newFocusMeteringAction = proxy.addPoint(Objects.requireNonNull(instanceManager.getInstance(identifier)), Objects.requireNonNull(instanceManager.getInstance(meteringPointId)), meteringMode); + final FocusMeteringActionFlutterApiImpl flutterApi = + new FocusMeteringActionFlutterApiImpl(binaryMessenger, instanceManager); + flutterApi.create(newFocusMeteringAction, reply -> {}); + return instanceManager.getIdentifierForStrongReference(newFocusMeteringAction); // TODO(camsim99): I'm here! Need to figure out how to handle list of metering points. Thinking use getter. + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java index 675225454c5..861ad631a3a 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java @@ -58,6 +58,16 @@ public static class QualitySelectorProxy { ? QualitySelector.fromOrderedList(qualityList, fallbackStrategy) : QualitySelector.fromOrderedList(qualityList); } + + public @NonNull ResolutionInfo getResolution( + @NonNull CameraInfo cameraInfo, @NonNull VideoQuality quality) { + final Size result = + FocusMeteringAction.getResolution(cameraInfo, getQualityFromVideoQuality(quality)); + return new ResolutionInfo.Builder() + .setWidth(Long.valueOf(result.getWidth())) + .setHeight(Long.valueOf(result.getHeight())) + .build(); + } } /** @@ -106,14 +116,8 @@ public void create( @Override public @NonNull ResolutionInfo getResolution( @NonNull Long cameraInfoIdentifier, @NonNull VideoQuality quality) { - final Size result = - QualitySelector.getResolution( - Objects.requireNonNull(instanceManager.getInstance(cameraInfoIdentifier)), - getQualityFromVideoQuality(quality)); - return new ResolutionInfo.Builder() - .setWidth(Long.valueOf(result.getWidth())) - .setHeight(Long.valueOf(result.getHeight())) - .build(); + return proxy.getResolution( + Objects.requireNonNull(instanceManager.getInstance(cameraInfoIdentifier)), quality); } /** diff --git a/packages/camera/camera_android_camerax/lib/src/camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera_control.dart index b1f74faec22..0581f858112 100644 --- a/packages/camera/camera_android_camerax/lib/src/camera_control.dart +++ b/packages/camera/camera_android_camerax/lib/src/camera_control.dart @@ -137,7 +137,10 @@ class _CameraControlHostApiImpl extends CameraControlHostApi { instanceManager.getIdentifier(instance)!; final int actionIdentifier = instanceManager.getIdentifier(action)!; try { - return startFocusAndMetering(cameraControlIdentifier, actionIdentifier); + final int focusMeteringResultId = await startFocusAndMetering( + cameraControlIdentifier, actionIdentifier); + return instanceManager.getInstanceWithWeakReference( + focusMeteringResultId); } on PlatformException catch (e) { SystemServices.cameraErrorStreamController .add(e.message ?? 'Starting focus and metering failed.'); diff --git a/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart b/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart index 25a349be5f6..a5fc586581f 100644 --- a/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart +++ b/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart @@ -16,19 +16,19 @@ import 'metering_point_factory.dart'; class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { /// Creates a [MeteringPoint] that is not automatically attached to a /// native object. - MeteringPoint.detached({ + DisplayOrientedMeteringPointFactory.detached({ BinaryMessenger? binaryMessenger, InstanceManager? instanceManager, }) : super.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager, ) { - _api = _MeteringPointHostApiImpl( + _api = _DisplayOrientedMeteringPointFactory( binaryMessenger: binaryMessenger, instanceManager: instanceManager); AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); } - late final _MeteringPointHostApiImpl _api; + late final _DisplayOrientedMeteringPointFactory _api; /// somethin @override diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart index 4a2d81e9da6..30fb3787870 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -5,6 +5,7 @@ import 'package:flutter/services.dart' show BinaryMessenger; import 'package:meta/meta.dart' show immutable; +import 'android_camera_camerax_flutter_api_impls.dart'; import 'camerax_library.g.dart'; import 'instance_manager.dart'; import 'java_object.dart'; @@ -22,8 +23,9 @@ class FocusMeteringAction extends JavaObject { binaryMessenger: binaryMessenger, instanceManager: instanceManager, ) { - _api = FocusMeteringActionHostApiImpl( + _api = _FocusMeteringActionHostApiImpl( binaryMessenger: binaryMessenger, instanceManager: instanceManager); + AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); _api.createFromInstance(this, meteringPoint, meteringMode); } @@ -48,7 +50,7 @@ class FocusMeteringAction extends JavaObject { final MeteringPoint meteringPoint; /// something - final int meteringMode; + final int? meteringMode; /// Flag for metering mode that indicates the AF (Auto Focus) region is /// enabled. @@ -63,6 +65,12 @@ class FocusMeteringAction extends JavaObject { /// Flag for metering mode that indicates the AWB (Auto White Balance) region /// is enabled. static const int flagAwb = 4; + + /// something + Future addPoint( + MeteringPoint meteringPoint, int? meteringMode) { + return _api.addPointFromInstance(this, meteringPoint, meteringMode); + } } /// Host API implementation of [FocusMeteringAction]. @@ -92,7 +100,7 @@ class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { /// Creates an [FocusMeteringAction] instance with the flash mode and target resolution /// if specified. void createFromInstance(FocusMeteringAction instance, - MeteringPoint meteringPoint, int meteringMode) { + MeteringPoint meteringPoint, int? meteringMode) { final int identifier = instanceManager.addDartCreatedInstance(instance, onCopy: (FocusMeteringAction original) { return FocusMeteringAction.detached( @@ -104,4 +112,61 @@ class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { create(identifier, instanceManager.getIdentifier(meteringPoint)!, meteringMode); } + + /// something + Future addPointFromInstance( + FocusMeteringAction instance, + MeteringPoint meteringPoint, + int? meteringMode) async { + final int identifier = instanceManager.getIdentifier(instance)!; + final int meteringPointId = instanceManager.getIdentifier(meteringPoint)!; + final int focusMeteringResultId = + await addPoint(identifier, meteringPointId, meteringMode); + return instanceManager.getInstanceWithWeakReference( + focusMeteringResultId); + } +} + +/// Flutter API implementation of [FocusMeteringAction]. +class FocusMeteringActionFlutterApiImpl extends FocusMeteringActionFlutterApi { + /// Constructs a [FocusMeteringActionFlutterApiImpl]. + /// + /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, + /// which routes to the host platform. + /// + /// An [instanceManager] is typically passed when a copy of an instance + /// contained by an [InstanceManager] is being created. If left null, it + /// will default to the global instance defined in [JavaObject]. + FocusMeteringActionFlutterApiImpl({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + }) : _binaryMessenger = binaryMessenger, + _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; + + /// Receives binary data across the Flutter platform barrier. + final BinaryMessenger? _binaryMessenger; + + /// Maintains instances stored to communicate with native language objects. + final InstanceManager _instanceManager; + + @override + void create(int identifier, int meteringPointId, int? meteringMode) { + _instanceManager.addHostCreatedInstance( + FocusMeteringAction.detached( + binaryMessenger: _binaryMessenger, + instanceManager: _instanceManager, + meteringPoint: _instanceManager + .getInstanceWithWeakReference(meteringPointId), + meteringMode: meteringMode), + identifier, + onCopy: (FocusMeteringAction original) { + return FocusMeteringAction.detached( + binaryMessenger: _binaryMessenger, + instanceManager: _instanceManager, + meteringMode: original.meteringMode, + meteringPoint: original.meteringPoint, + ); + }, + ); + } } diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart b/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart index 04fd3d38563..d90ca69cff3 100644 --- a/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart +++ b/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart @@ -12,4 +12,4 @@ abstract class MeteringPointFactory { /// something Future getDefaultPointSize(); } -// here \ No newline at end of file +// here diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 9defed174dd..bcb2e857b8a 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -462,7 +462,14 @@ abstract class CameraControlFlutterApi { @HostApi(dartHostTestHandler: 'TestFocusMeteringActionHostApi') abstract class FocusMeteringActionHostApi { - void create(int identifier, int meteringPointId, int meteringMode); + void create(int identifier, int meteringPointId, int? meteringMode); + + int addPoint(int identifier, int meteringPointId, int? meteringMode); +} + +@FlutterApi() +abstract class FocusMeteringActionFlutterApi { + void create(int identifier, int meteringPointId, int? meteringMode); } @HostApi() From ad9c29c88b05c41861e3b3ba14394ee556e891dd Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 13 Dec 2023 10:16:21 -0800 Subject: [PATCH 05/24] More wrapping, start with meteringpoint --- .../FocusMeteringActionFlutterApiImpl.java | 4 +-- .../FocusMeteringActionHostApiImpl.java | 2 +- .../lib/src/focus_metering_action.dart | 29 ++++--------------- .../lib/src/focus_metering_result.dart | 2 +- .../lib/src/metering_point.dart | 24 +++++++++++++-- .../lib/src/metering_point_factory.dart | 15 ---------- .../pigeons/camerax_library.dart | 11 ++++--- 7 files changed, 36 insertions(+), 51 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java index ef8d192b76b..a829faf7e0a 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java @@ -40,12 +40,10 @@ public FocusMeteringActionFlutterApiWrapper( */ public void create( @NonNull FocusMeteringAction instance, - @NonNull Long meteringPointIdArg, - @Nullable Long meteringModeArg, @NonNull Reply callback) { if (!instanceManager.containsInstance(instance)) { focusMeteringActionFlutterApi.create( - instanceManager.addHostCreatedInstance(instance), code, callback); + instanceManager.addHostCreatedInstance(instance), callback); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java index 7e0b425bfbc..5e2b5b3aedd 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java @@ -92,6 +92,6 @@ Long addPoint(@NonNull Long identifier, @NonNull Long meteringPointId, @Nullable final FocusMeteringActionFlutterApiImpl flutterApi = new FocusMeteringActionFlutterApiImpl(binaryMessenger, instanceManager); flutterApi.create(newFocusMeteringAction, reply -> {}); - return instanceManager.getIdentifierForStrongReference(newFocusMeteringAction); // TODO(camsim99): I'm here! Need to figure out how to handle list of metering points. Thinking use getter. + return instanceManager.getIdentifierForStrongReference(newFocusMeteringAction); } } diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart index 30fb3787870..8dd7b5e6199 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -17,8 +17,8 @@ class FocusMeteringAction extends JavaObject { FocusMeteringAction({ BinaryMessenger? binaryMessenger, InstanceManager? instanceManager, - required this.meteringPoint, - required this.meteringMode, + required MeteringPoint meteringPoint, + int? meteringMode, }) : super.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager, @@ -34,8 +34,6 @@ class FocusMeteringAction extends JavaObject { FocusMeteringAction.detached({ BinaryMessenger? binaryMessenger, InstanceManager? instanceManager, - required this.meteringPoint, - required this.meteringMode, }) : super.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager, @@ -46,12 +44,6 @@ class FocusMeteringAction extends JavaObject { late final _FocusMeteringActionHostApiImpl _api; - /// something - final MeteringPoint meteringPoint; - - /// something - final int? meteringMode; - /// Flag for metering mode that indicates the AF (Auto Focus) region is /// enabled. /// @@ -75,7 +67,7 @@ class FocusMeteringAction extends JavaObject { /// Host API implementation of [FocusMeteringAction]. class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { - /// Constructs a [FocusMeteringActionHostApiImpl]. + /// Constructs a [_FocusMeteringActionHostApiImpl]. /// /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, /// which routes to the host platform. @@ -104,10 +96,7 @@ class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { final int identifier = instanceManager.addDartCreatedInstance(instance, onCopy: (FocusMeteringAction original) { return FocusMeteringAction.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - meteringPoint: meteringPoint, - meteringMode: meteringMode); + binaryMessenger: binaryMessenger, instanceManager: instanceManager); }); create(identifier, instanceManager.getIdentifier(meteringPoint)!, meteringMode); @@ -150,21 +139,15 @@ class FocusMeteringActionFlutterApiImpl extends FocusMeteringActionFlutterApi { final InstanceManager _instanceManager; @override - void create(int identifier, int meteringPointId, int? meteringMode) { + void create(int identifier) { _instanceManager.addHostCreatedInstance( FocusMeteringAction.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - meteringPoint: _instanceManager - .getInstanceWithWeakReference(meteringPointId), - meteringMode: meteringMode), + binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), identifier, onCopy: (FocusMeteringAction original) { return FocusMeteringAction.detached( binaryMessenger: _binaryMessenger, instanceManager: _instanceManager, - meteringMode: original.meteringMode, - meteringPoint: original.meteringPoint, ); }, ); diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart index 8484c72496d..2d4a20a6b68 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart @@ -5,7 +5,7 @@ import 'package:flutter/services.dart' show BinaryMessenger; import 'package:meta/meta.dart' show immutable; -// TODO: add new flutter apis +// TODO(camsim99): add new flutter apis import 'android_camera_camerax_flutter_api_impls.dart'; import 'camerax_library.g.dart'; import 'instance_manager.dart'; diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point.dart b/packages/camera/camera_android_camerax/lib/src/metering_point.dart index f5242201431..5f1be1181c9 100644 --- a/packages/camera/camera_android_camerax/lib/src/metering_point.dart +++ b/packages/camera/camera_android_camerax/lib/src/metering_point.dart @@ -13,6 +13,23 @@ import 'java_object.dart'; /// somethin @immutable class MeteringPoint extends JavaObject { + /// Creates a [MeteringPoint]. + MeteringPoint({ + BinaryMessenger? binaryMessenger, + InstanceManager? instanceManager, + required double x, + required double y, + required double? size, + }) : super.detached( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + ) { + _api = _MeteringPointHostApiImpl( + binaryMessenger: binaryMessenger, instanceManager: instanceManager); + _api.createFromInstance(this, x, y, size); + AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); + } + /// Creates a [MeteringPoint] that is not automatically attached to a /// native object. MeteringPoint.detached({ @@ -29,8 +46,11 @@ class MeteringPoint extends JavaObject { late final _MeteringPointHostApiImpl _api; + /// something + Future getDefaultPointSize() => _api.getDefaultPointSize(); + /// somethin - Future getSize() => _api.getSizeFromInstance(this); + Future getSize() => _api.getSizeFromInstance(this); } /// Host API implementation of [MeteringPoint]. @@ -58,7 +78,7 @@ class _MeteringPointHostApiImpl extends MeteringPointHostApi { late final InstanceManager instanceManager; /// somethin - Future getSizeFromInstance(MeteringPoint instance) { + Future getSizeFromInstance(MeteringPoint instance) { final int identifier = instanceManager.getIdentifier(instance)!; return getSize(identifier); } diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart b/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart deleted file mode 100644 index d90ca69cff3..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/metering_point_factory.dart +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'metering_point.dart'; - -/// somethin -abstract class MeteringPointFactory { - /// somethin - Future createPoint(int x, int y, int? size); - - /// something - Future getDefaultPointSize(); -} -// here diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index bcb2e857b8a..d49a1198b46 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -469,7 +469,7 @@ abstract class FocusMeteringActionHostApi { @FlutterApi() abstract class FocusMeteringActionFlutterApi { - void create(int identifier, int meteringPointId, int? meteringMode); + void create(int identifier); } @HostApi() @@ -484,12 +484,11 @@ abstract class FocusMeteringResultFlutterApi { @HostApi(dartHostTestHandler: 'TestMeteringPointHostApi') abstract class MeteringPointHostApi { - int getSize(int identifier); -} + void create(int identifier, double x, double y, double? size); -@FlutterApi() -abstract class MeteringPointFlutterApi { - void create(int identifier); + double getDefaultPointSize(); + + double getSize(int identifier); } @HostApi(dartHostTestHandler: 'TestDisplayOrientedMeteringPointFactoryHostApi') From 8472b7ca3b2e98d626b87e1f966bc3fc2192b89a Mon Sep 17 00:00:00 2001 From: camsim99 Date: Tue, 26 Dec 2023 14:35:41 -0800 Subject: [PATCH 06/24] Wrapping --- .../camerax/CameraControlHostApiImpl.java | 45 ++++++++++- .../lib/src/camera_control.dart | 43 +++++----- ...splay_oriented_metering_point_factory.dart | 38 --------- .../lib/src/focus_metering_action.dart | 1 + .../lib/src/metering_point.dart | 79 ++++++++----------- .../pigeons/camerax_library.dart | 8 +- 6 files changed, 103 insertions(+), 111 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java index 91f64eb0c6e..d738846638d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java @@ -77,7 +77,6 @@ public void onFailure(Throwable t) { ContextCompat.getMainExecutor(context)); } - @NonNull public void startFocusAndMetering( @NonNull CameraControl cameraControl, @NonNull FocusMeteringAction focusMeteringAction, @@ -101,6 +100,39 @@ public void onFailure(Throwable t) { }, ContextCompat.getMainExecutor(context)); } + + public void cancelFocusAndMetering(@NonNull CameraControl cameraControl, @NonNull Result result) { + ListenableFuture cancelFocusAndMeteringFuture = cameraControl.cancelFocusAndMetering(); + + Futures.addCallback( + cancelFocusAndMeteringFuture, + new FutureCallback() { + public void onSuccess(Void voidResult) { + result.success(null); + } + + public void onFailure(Throwable t) { + result.error(t); + } + }, + ContextCompat.getMainExecutor(context)); + } + + public void setExposureCompensationIndex(@NonNull CameraControl cameraControl, @NonNull Long index, @NonNull Result result) { + ListenableFuture setExposureCompensationIndexFuture = cameraControl.setExposureCompensationIndex(index.intValue()); + + Futures.addCallback( + setExposureCompensationIndexFuture, + new FutureCallback() { + public void onSuccess(Integer integerResult) { + result.success(integerResult); + } + + public void onFailure(Throwable t) { + result.error(t); + } + }, + ContextCompat.getMainExecutor(context)); } /** @@ -166,6 +198,17 @@ public void startFocusAndMetering( result); } + @Override + public void cancelFocusAndMetering(@NonNull Long identifier, @NonNull Result result) { + proxy.cancelFocusAndMetering(getCameraControlInstance(identifier), result); + } + + @Override + public void setExposureCompensationIndex(@NonNull Long identifier, @NonNull Long index, @NonNull Result result) { + proxy.setExposureCompensationIndex(getCameraControlInstance(identifier), index, result); + } + + private CameraControl getCameraControlInstance(@NonNull Long identifier) { return Objects.requireNonNull(instanceManager.getInstance(identifier)); } diff --git a/packages/camera/camera_android_camerax/lib/src/camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera_control.dart index 0581f858112..fb8d31ca13e 100644 --- a/packages/camera/camera_android_camerax/lib/src/camera_control.dart +++ b/packages/camera/camera_android_camerax/lib/src/camera_control.dart @@ -7,6 +7,7 @@ import 'package:meta/meta.dart' show immutable; import 'android_camera_camerax_flutter_api_impls.dart'; import 'camerax_library.g.dart'; +import 'focus_metering_action.dart'; import 'focus_metering_result.dart'; import 'instance_manager.dart'; import 'java_object.dart'; @@ -50,18 +51,11 @@ class CameraControl extends JavaObject { return _api.setZoomRatioFromInstance(this, ratio); } - /// Set the exposure compensation value for related [Camera]. - /// - /// Returns null if the exposure compensation index failed to be set. - Future setExposureCompensationIndex(int index) async { - return _api.setExposureCompensationIndexFromInstance(this, index); - } - /// Starts a focus and metering action configured by the [FocusMeteringAction]. /// /// will trigger an auto focus action and enable auto focus (AF)/auto exposure /// (AE)/auto white balance (AWB) metering regions. - Future startFocusAndMetering( + Future startFocusAndMetering( FocusMeteringAction action) { return _api.startFocusAndMeteringFromInstance(this, action); } @@ -69,6 +63,13 @@ class CameraControl extends JavaObject { /// Cancels current FocusMeteringAction and clears AF/AE/AWB regions. Future cancelFocusAndMetering() => _api.cancelFocusAndMeteringFromInstance(this); + + /// Set the exposure compensation value for related [Camera]. + /// + /// Returns null if the exposure compensation index failed to be set. + Future setExposureCompensationIndex(int index) async { + return _api.setExposureCompensationIndexFromInstance(this, index); + } } /// Host API implementation of [CameraControl]. @@ -116,19 +117,6 @@ class _CameraControlHostApiImpl extends CameraControlHostApi { } } - /// Sets exposure compensation index for specified [CameraControl] instance. - Future setExposureCompensationIndexFromInstance( - CameraControl instance, int index) async { - final int identifier = instanceManager.getIdentifier(instance)!; - try { - return setExposureCompensationIndex(identifier, index); - } on PlatformException catch (e) { - SystemServices.cameraErrorStreamController.add( - e.message ?? 'Setting the camera xposure compensation index failed.'); - return Future.value(); - } - } - /// Starts a focus and metering action configured by the [FocusMeteringAction] /// for the specified [CameraControl] instance. Future startFocusAndMeteringFromInstance( @@ -155,6 +143,19 @@ class _CameraControlHostApiImpl extends CameraControlHostApi { final int identifier = instanceManager.getIdentifier(instance)!; await cancelFocusAndMetering(identifier); } + + /// Sets exposure compensation index for specified [CameraControl] instance. + Future setExposureCompensationIndexFromInstance( + CameraControl instance, int index) async { + final int identifier = instanceManager.getIdentifier(instance)!; + try { + return setExposureCompensationIndex(identifier, index); + } on PlatformException catch (e) { + SystemServices.cameraErrorStreamController.add( + e.message ?? 'Setting the camera xposure compensation index failed.'); + return Future.value(); + } + } } /// Flutter API implementation of [CameraControl]. diff --git a/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart b/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart deleted file mode 100644 index a5fc586581f..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/display_oriented_metering_point_factory.dart +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'metering_point_factory.dart'; - -/// somethin -@immutable -class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { - /// Creates a [MeteringPoint] that is not automatically attached to a - /// native object. - DisplayOrientedMeteringPointFactory.detached({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = _DisplayOrientedMeteringPointFactory( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _DisplayOrientedMeteringPointFactory _api; - - /// somethin - @override - Future getDefaultPointSize() { - return Future.value(3); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart index 8dd7b5e6199..854b59406c7 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -8,6 +8,7 @@ import 'package:meta/meta.dart' show immutable; import 'android_camera_camerax_flutter_api_impls.dart'; import 'camerax_library.g.dart'; import 'instance_manager.dart'; +import 'metering_point.dart'; import 'java_object.dart'; /// somethin diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point.dart b/packages/camera/camera_android_camerax/lib/src/metering_point.dart index 5f1be1181c9..af9fde059b4 100644 --- a/packages/camera/camera_android_camerax/lib/src/metering_point.dart +++ b/packages/camera/camera_android_camerax/lib/src/metering_point.dart @@ -17,9 +17,9 @@ class MeteringPoint extends JavaObject { MeteringPoint({ BinaryMessenger? binaryMessenger, InstanceManager? instanceManager, - required double x, - required double y, - required double? size, + required this.x, + required this.y, + required this.size, }) : super.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager, @@ -35,6 +35,9 @@ class MeteringPoint extends JavaObject { MeteringPoint.detached({ BinaryMessenger? binaryMessenger, InstanceManager? instanceManager, + required this.x, + required this.y, + required this.size, }) : super.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager, @@ -46,11 +49,22 @@ class MeteringPoint extends JavaObject { late final _MeteringPointHostApiImpl _api; - /// something - Future getDefaultPointSize() => _api.getDefaultPointSize(); + /// somethin + final double x; + + /// somethin + final double y; /// somethin - Future getSize() => _api.getSizeFromInstance(this); + final double? size; + + /// something + static Future getDefaultPointSize( + {BinaryMessenger? binaryMessenger}) { + final MeteringPointHostApi hostApi = + MeteringPointHostApi(binaryMessenger: binaryMessenger); + return hostApi.getDefaultPointSize(); + } } /// Host API implementation of [MeteringPoint]. @@ -77,46 +91,19 @@ class _MeteringPointHostApiImpl extends MeteringPointHostApi { /// Maintains instances stored to communicate with native language objects. late final InstanceManager instanceManager; - /// somethin - Future getSizeFromInstance(MeteringPoint instance) { - final int identifier = instanceManager.getIdentifier(instance)!; - return getSize(identifier); - } -} - -/// Flutter API implementation of [MeteringPoint]. -class MeteringPointFlutterApiImpl extends MeteringPointFlutterApi { - /// Constructs a [MeteringPointFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - MeteringPointFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; + Future createFromInstance( + MeteringPoint instance, double x, double y, double? size) { + int? identifier = instanceManager.getIdentifier(instance); + identifier ??= instanceManager.addDartCreatedInstance(instance, + onCopy: (MeteringPoint original) { + return MeteringPoint.detached( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + x: original.x, + y: original.y, + size: original.size); + }); - @override - void create(int identifier) { - _instanceManager.addHostCreatedInstance( - MeteringPoint.detached( - binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), - identifier, - onCopy: (MeteringPoint original) { - return MeteringPoint.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager); - }, - ); + return create(identifier, x, y, size); } } diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index d49a1198b46..90b75bd203c 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -446,13 +446,13 @@ abstract class CameraControlHostApi { void setZoomRatio(int identifier, double ratio); @async - int setExposureCompensationIndex(int identifier, int index); + int startFocusAndMetering(int identifier, int focusMeteringActionId); @async - int startFocusAndMetering(int identifier, int focusMeteringActionId); + void cancelFocusAndMetering(int identifier); @async - void cancelFocusAndMetering(int identiier); + int setExposureCompensationIndex(int identifier, int index); } @FlutterApi() @@ -487,8 +487,6 @@ abstract class MeteringPointHostApi { void create(int identifier, double x, double y, double? size); double getDefaultPointSize(); - - double getSize(int identifier); } @HostApi(dartHostTestHandler: 'TestDisplayOrientedMeteringPointFactoryHostApi') From 886706b56b1f722294499c34b56f7e1147c3b836 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 27 Dec 2023 08:17:03 -0800 Subject: [PATCH 07/24] New files --- .../FocusMeteringResultHostApiImpl.java | 0 .../camerax/MeteringPointHostApiImpl.java | 77 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java new file mode 100644 index 00000000000..1e33a4acb0c --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java @@ -0,0 +1,77 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; +import androidx.camera.core.MeteringPoint; +import androidx.camera.core.MeteringPointFactory; +import androidx.camera.core.SurfaceMeteringPointFactory; +import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointHostApi; + +/** + * Host API implementation for {@link MeteringPoint}. + * + *

This class handles instantiating and adding native object instances that are attached to a + * Dart instance or handle method calls on the associated native class or an instance of the class. + */ +public class MeteringPointHostApiImpl implements MeteringPointHostApi { + private final InstanceManager instanceManager; + private final MeteringPointProxy proxy; + + /** Proxy for constructors and static method of {@link MeteringPoint}. */ + @VisibleForTesting + public static class MeteringPointProxy { + + public void create(@NonNull Double x, @NonNull Double y, @Nullable Double size) { + SurfaceOrientedMeteringPointFactory factory = new SurfaceOrientedMeteringPointFactory(1f, 1f); // TODO(camsim99): get feedback on using this default instead of exposing + if (size == null) { + return factory.createPoint(x, y); + } else { + return factory.createPoint(x, y, size); + } + } + + @NonNull + public float getDefaultPointSize() { + return MeteringPointFactory.getDefaultPointSize(); + } + } + /** + * Constructs a {@link MeteringPointHostApiImpl}. + * + * @param instanceManager maintains instances stored to communicate with attached Dart objects + */ + public MeteringPointHostApiImpl(@NonNull InstanceManager instanceManager) { + this(instanceManager, new MeteringPointProxy()); + } + + /** + * Constructs a {@link MeteringPointHostApiImpl}. + * + * @param instanceManager maintains instances stored to communicate with attached Dart objects + * @param proxy proxy for constructors and static method of {@link MeteringPoint} + */ + @VisibleForTesting + MeteringPointHostApiImpl( + @NonNull InstanceManager instanceManager, @NonNull MeteringPointProxy proxy) { + this.instanceManager = instanceManager; + this.proxy = proxy; + } + + @Override + public void create(@NonNull Long identifier, @NonNull Double x, @NonNull Double y, @Nullable Double size) { + MeteringPoint meteringPoint = proxy.create(x, y, size); + instanceManager.addDartCreatedInstance(meteringPoint, identifier); + } + + @Override + @NonNull + public Double getDefaultPointSize() { + return (Double) proxy.getDefaultPointSize; + } +} From 51da157f45b881df1af31b370ca8feb3a7e08862 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Tue, 2 Jan 2024 15:33:40 -0800 Subject: [PATCH 08/24] Finish non cam2 wrpaping --- .../FocusMeteringActionFlutterApiImpl.java | 6 +- .../FocusMeteringActionHostApiImpl.java | 61 +- .../FocusMeteringResultFlutterApiImpl.java | 55 + .../FocusMeteringResultHostApiImpl.java | 67 + .../camerax/GeneratedCameraXLibrary.java | 1428 ++++++++++------- .../lib/src/camerax_library.g.dart | 767 ++++++--- .../lib/src/focus_metering_action.dart | 42 +- .../pigeons/camerax_library.dart | 20 +- .../test/test_camerax_library.g.dart | 1074 ++++++------- 9 files changed, 2078 insertions(+), 1442 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java index a829faf7e0a..287adfb59af 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java @@ -15,18 +15,18 @@ *

This class may handle adding native instances that are attached to a Dart instance or passing * arguments of callbacks methods to a Dart instance. */ -public class FocusMeteringActionFlutterApiWrapper { +public class FocusMeteringActionFlutterApiImpl { private final BinaryMessenger binaryMessenger; private final InstanceManager instanceManager; private FocusMeteringActionFlutterApi focusMeteringActionFlutterApi; /** - * Constructs a {@link FocusMeteringActionFlutterApiWrapper}. + * Constructs a {@link FocusMeteringActionFlutterApiImpl}. * * @param binaryMessenger used to communicate with Dart over asynchronous messages * @param instanceManager maintains instances stored to communicate with attached Dart objects */ - public FocusMeteringActionFlutterApiWrapper( + public FocusMeteringActionFlutterApiImpl( @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { this.binaryMessenger = binaryMessenger; this.instanceManager = instanceManager; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java index 5e2b5b3aedd..4098a566511 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java @@ -32,29 +32,35 @@ public class FocusMeteringActionHostApiImpl implements FocusMeteringActionHostAp public static class FocusMeteringActionProxy { /** Creates an instance of {@link FocusMeteringAction}. */ public @NonNull FocusMeteringAction create( - @NonNull MeteringPoint meteringPoint, @Nullable meteringMode) { - FocusMeteringAction.Builder focusMeteringActionBuilder; - if (meteringMode == null) { - focusMeteringActionBuilder = new FocusMeteringAction.Builder(meteringPoint); - } else { - focusMeteringActionBuilder = new FocusMeteringAction.Builder(meteringPoint, meteringMode); + @NonNull List meteringPoints, @NonNull List meteringPointModes) { + if (meteringPoints.size() != meteringPointModes.size()) { + throw new IllegalArgumentException("The number of specified metering points must match the number of specified metering point modes."); } + FocusMeteringAction.Builder focusMeteringActionBuilder; - return focusMeteringActionBuilder.build(); - } + for (int i = 0; i < meteringPoints.size(); i++) { + MeteringPoint meteringPoint = meteringPoints.get(i); + Integer meteringMode = meteringPointModes.get(i); + if (i == 0) { + // On the first iteration, create the builder to add points to. + if (meteringMode == null) { + focusMeteringActionBuilder = new FocusMeteringAction.Builder(meteringPoint); + } else { + focusMeteringActionBuilder = new FocusMeteringAction.Builder(meteringPoint, meteringMode); + } + continue; + } - public @NonNull FocusMeteringAction create( - @NonNull FocusMeteringAction focusMeteringAction, - @NonNull MeteringPoint meteringPoint, @Nullable meteringMode) { - FocusMetering newFocusMeteringAction; + // For any i(teration) > 0, add metering points in order as specified by input lists. if (meteringMode == null) { - newFocusMeteringAction = focusMeteringAction.addPoint(meteringPoint); - } else { - newFocusMeteringAction = focusMeteringAction.addPoint(meteringPoint, meteringMode); + focusMeteringActionBuilder.add(meteringPoint); + } else { + focusMeteringActionBuilder.add(meteringPoint, meteringMode); + } } - return newFocusMeteringAction; - } + return focusMeteringActionBuilder.build(); + } } /** @@ -80,18 +86,15 @@ public FocusMeteringActionHostApiImpl(@NonNull InstanceManager instanceManager) @Override - public void create(@NonNull Long identifier, @NonNull Long meteringPointId, @Nullable Long meteringMode) { + public void create(@NonNull Long identifier, @NonNull List meteringPointInfos) { + final List meteringPoints = new ArrayList(); + final List meteringPointModes = new ArrayList(); + for (MeteringPointInfo meteringPointInfo : meteringPointInfos) { + meteringPoint.add(instanceManager.getInstance(meteringPointInfo.getMeteringPointId())); + meteringPointModes.add(meteringPointIngo.getMeteringMode().intValue()); + } + instanceManager.addDartCreatedInstance( - proxy.create(Objects.requireNonNull(instanceManager.getInstance(meteringPointId)), meteringMode), identifier); + proxy.create(meteringPoints, meteringPointModes), identifier); } - - @Override - @NonNull - Long addPoint(@NonNull Long identifier, @NonNull Long meteringPointId, @Nullable Long meteringMode) { - FocusMeteringAction newFocusMeteringAction = proxy.addPoint(Objects.requireNonNull(instanceManager.getInstance(identifier)), Objects.requireNonNull(instanceManager.getInstance(meteringPointId)), meteringMode); - final FocusMeteringActionFlutterApiImpl flutterApi = - new FocusMeteringActionFlutterApiImpl(binaryMessenger, instanceManager); - flutterApi.create(newFocusMeteringAction, reply -> {}); - return instanceManager.getIdentifierForStrongReference(newFocusMeteringAction); - } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java new file mode 100644 index 00000000000..8d5a8a85cb4 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java @@ -0,0 +1,55 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; +import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi; + +/** + * Flutter API implementation for {@link FocusMeteringResult}. + * + *

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

This class may handle instantiating and adding native object instances that are attached to a + * Dart instance or handle method calls on the associated native class or an instance of the class. + */ +public class FocusMeteringResultHostApiImpl implements FocusMeteringResultHostApi { + private final InstanceManager instanceManager; + + private final FocusMeteringResultProxy proxy; + + /** Proxy for constructors and static method of {@link FocusMeteringResult}. */ + @VisibleForTesting + public static class FocusMeteringResultProxy { + /** Returns whether or not the {@link FocusMeteringResult} was successful. */ + public @NonNull + public Boolean isFocusSuccessful(@NonNull FocusMeteringResult focusMeteringResult) { + return focusMeteringResult.isFocusSuccessful(); + } + } + + /** + * Constructs a {@link FocusMeteringResultHostApiImpl}. + * + * @param instanceManager maintains instances stored to communicate with attached Dart objects + */ + public FocusMeteringResultHostApiImpl(@NonNull InstanceManager instanceManager) { + this(instanceManager, new FocusMeteringResultProxy()); + } + + /** + * Constructs a {@link FocusMeteringResultHostApiImpl}. + * + * @param instanceManager maintains instances stored to communicate with attached Dart objects + * @param proxy proxy for constructors and static method of {@link FocusMeteringResult} + */ + FocusMeteringResultHostApiImpl( + @NonNull InstanceManager instanceManager, @NonNull FocusMeteringResultProxy proxy) { + this.instanceManager = instanceManager; + this.proxy = proxy; + } + + + @Override + @NonNull + public Boolean isFocusSuccessful(@NonNull Long identifier) { + return proxy.isFocusSuccessful(instanceManager.getInstance(identifier)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java index e8da1975336..ceddc6f10da 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java @@ -18,7 +18,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** Generated class from Pigeon. */ @SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression", "serial"}) @@ -33,7 +35,8 @@ public static class FlutterError extends RuntimeException { /** The error details. Must be a datatype supported by the api codec. */ public final Object details; - public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) { + public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) + { super(message); this.code = code; this.details = details; @@ -52,7 +55,7 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { errorList.add(exception.toString()); errorList.add(exception.getClass().getSimpleName()); errorList.add( - "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); + "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); } return errorList; } @@ -60,7 +63,7 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { /** * The states the camera can be in. * - *

See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. + * See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. */ public enum CameraStateType { CLOSED(0), @@ -79,19 +82,20 @@ private CameraStateType(final int index) { /** * The types (T) properly wrapped to be used as a LiveData. * - *

If you need to add another type to support a type S to use a LiveData in this plugin, - * ensure the following is done on the Dart side: + * If you need to add another type to support a type S to use a LiveData in + * this plugin, ensure the following is done on the Dart side: * - *

* In `../lib/src/live_data.dart`, add new cases for S in - * `_LiveDataHostApiImpl#getValueFromInstances` to get the current value of type S from a - * LiveData instance and in `LiveDataFlutterApiImpl#create` to create the expected type of - * LiveData when requested. + * * In `../lib/src/live_data.dart`, add new cases for S in + * `_LiveDataHostApiImpl#getValueFromInstances` to get the current value of + * type S from a LiveData instance and in `LiveDataFlutterApiImpl#create` + * to create the expected type of LiveData when requested. * - *

On the native side, ensure the following is done: + * On the native side, ensure the following is done: * - *

* Update `LiveDataHostApiImpl#getValue` is updated to properly return identifiers for - * instances of type S. * Update `ObserverFlutterApiWrapper#onChanged` to properly handle - * receiving calls with instances of type S if a LiveData instance is observed. + * * Update `LiveDataHostApiImpl#getValue` is updated to properly return + * identifiers for instances of type S. + * * Update `ObserverFlutterApiWrapper#onChanged` to properly handle receiving + * calls with instances of type S if a LiveData instance is observed. */ public enum LiveDataSupportedType { CAMERA_STATE(0), @@ -105,12 +109,12 @@ private LiveDataSupportedType(final int index) { } /** - * Video quality constraints that will be used by a QualitySelector to choose an appropriate video - * resolution. + * Video quality constraints that will be used by a QualitySelector to choose + * an appropriate video resolution. * - *

These are pre-defined quality constants that are universally used for video. + * These are pre-defined quality constants that are universally used for video. * - *

See https://developer.android.com/reference/androidx/camera/video/Quality. + * See https://developer.android.com/reference/androidx/camera/video/Quality. */ public enum VideoQuality { SD(0), @@ -130,7 +134,7 @@ private VideoQuality(final int index) { /** * Fallback rules for selecting video resolution. * - *

See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. + * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. */ public enum VideoResolutionFallbackRule { HIGHER_QUALITY_OR_LOWER_THAN(0), @@ -211,13 +215,9 @@ ArrayList toList() { static @NonNull ResolutionInfo fromList(@NonNull ArrayList list) { ResolutionInfo pigeonResult = new ResolutionInfo(); Object width = list.get(0); - pigeonResult.setWidth( - (width == null) ? null : ((width instanceof Integer) ? (Integer) width : (Long) width)); + pigeonResult.setWidth((width == null) ? null : ((width instanceof Integer) ? (Integer) width : (Long) width)); Object height = list.get(1); - pigeonResult.setHeight( - (height == null) - ? null - : ((height instanceof Integer) ? (Integer) height : (Long) height)); + pigeonResult.setHeight((height == null) ? null : ((height instanceof Integer) ? (Integer) height : (Long) height)); return pigeonResult; } } @@ -459,19 +459,9 @@ ArrayList toList() { static @NonNull ExposureCompensationRange fromList(@NonNull ArrayList list) { ExposureCompensationRange pigeonResult = new ExposureCompensationRange(); Object minCompensation = list.get(0); - pigeonResult.setMinCompensation( - (minCompensation == null) - ? null - : ((minCompensation instanceof Integer) - ? (Integer) minCompensation - : (Long) minCompensation)); + pigeonResult.setMinCompensation((minCompensation == null) ? null : ((minCompensation instanceof Integer) ? (Integer) minCompensation : (Long) minCompensation)); Object maxCompensation = list.get(1); - pigeonResult.setMaxCompensation( - (maxCompensation == null) - ? null - : ((maxCompensation instanceof Integer) - ? (Integer) maxCompensation - : (Long) maxCompensation)); + pigeonResult.setMaxCompensation((maxCompensation == null) ? null : ((maxCompensation instanceof Integer) ? (Integer) maxCompensation : (Long) maxCompensation)); return pigeonResult; } } @@ -479,7 +469,7 @@ ArrayList toList() { /** * Convenience class for sending lists of [Quality]s. * - *

Generated class from Pigeon that represents data sent in messages. + * Generated class from Pigeon that represents data sent in messages. */ public static final class VideoQualityData { private @NonNull VideoQuality quality; @@ -529,6 +519,86 @@ ArrayList toList() { } } + /** + * Convenience class for building [FocusMeteringAction] with multiple metering + * points. + * + * Generated class from Pigeon that represents data sent in messages. + */ + public static final class MeteringPointInfo { + /** + * Instance manager ID corresponding to [MeteringPoint] that relates to this + * info. + */ + private @NonNull Long meteringPointId; + + public @NonNull Long getMeteringPointId() { + return meteringPointId; + } + + public void setMeteringPointId(@NonNull Long setterArg) { + if (setterArg == null) { + throw new IllegalStateException("Nonnull field \"meteringPointId\" is null."); + } + this.meteringPointId = setterArg; + } + + /** Metering mode represented by one of the [FocusMeteringAction] constants. */ + private @Nullable Long meteringMode; + + public @Nullable Long getMeteringMode() { + return meteringMode; + } + + public void setMeteringMode(@Nullable Long setterArg) { + this.meteringMode = setterArg; + } + + /** Constructor is non-public to enforce null safety; use Builder. */ + MeteringPointInfo() {} + + public static final class Builder { + + private @Nullable Long meteringPointId; + + public @NonNull Builder setMeteringPointId(@NonNull Long setterArg) { + this.meteringPointId = setterArg; + return this; + } + + private @Nullable Long meteringMode; + + public @NonNull Builder setMeteringMode(@Nullable Long setterArg) { + this.meteringMode = setterArg; + return this; + } + + public @NonNull MeteringPointInfo build() { + MeteringPointInfo pigeonReturn = new MeteringPointInfo(); + pigeonReturn.setMeteringPointId(meteringPointId); + pigeonReturn.setMeteringMode(meteringMode); + return pigeonReturn; + } + } + + @NonNull + ArrayList toList() { + ArrayList toListResult = new ArrayList(2); + toListResult.add(meteringPointId); + toListResult.add(meteringMode); + return toListResult; + } + + static @NonNull MeteringPointInfo fromList(@NonNull ArrayList list) { + MeteringPointInfo pigeonResult = new MeteringPointInfo(); + Object meteringPointId = list.get(0); + pigeonResult.setMeteringPointId((meteringPointId == null) ? null : ((meteringPointId instanceof Integer) ? (Integer) meteringPointId : (Long) meteringPointId)); + Object meteringMode = list.get(1); + pigeonResult.setMeteringMode((meteringMode == null) ? null : ((meteringMode instanceof Integer) ? (Integer) meteringMode : (Long) meteringMode)); + return pigeonResult; + } + } + public interface Result { @SuppressWarnings("UnknownNullness") void success(T result); @@ -540,7 +610,7 @@ public interface InstanceManagerHostApi { /** * Clear the native `InstanceManager`. * - *

This is typically only used after a hot restart. + * This is typically only used after a hot restart. */ void clear(); @@ -548,12 +618,8 @@ public interface InstanceManagerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `InstanceManagerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { + /**Sets up an instance of `InstanceManagerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -565,7 +631,8 @@ static void setup( try { api.clear(); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -586,9 +653,7 @@ public interface JavaObjectHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObjectHostApi api) { { BasicMessageChannel channel = @@ -603,7 +668,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObject try { api.dispose((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -623,7 +689,7 @@ public JavaObjectFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -632,7 +698,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -645,32 +710,28 @@ public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CameraInfoHostApi { - @NonNull + @NonNull Long getSensorRotationDegrees(@NonNull Long identifier); - @NonNull + @NonNull Long getCameraState(@NonNull Long identifier); - @NonNull + @NonNull Long getExposureState(@NonNull Long identifier); - @NonNull + @NonNull Long getZoomState(@NonNull Long identifier); /** The codec used by CameraInfoHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `CameraInfoHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `CameraInfoHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfoHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -678,11 +739,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getSensorRotationDegrees( - (identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getSensorRotationDegrees((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -703,11 +763,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getCameraState( - (identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getCameraState((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -720,9 +779,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.CameraInfoHostApi.getExposureState", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.CameraInfoHostApi.getExposureState", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -730,11 +787,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getExposureState( - (identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getExposureState((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -755,10 +811,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getZoomState((identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getZoomState((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -778,7 +834,7 @@ public CameraInfoFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -787,7 +843,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -802,19 +857,15 @@ public interface CameraSelectorHostApi { void create(@NonNull Long identifier, @Nullable Long lensFacing); - @NonNull + @NonNull List filter(@NonNull Long identifier, @NonNull List cameraInfoIds); /** The codec used by CameraSelectorHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `CameraSelectorHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable CameraSelectorHostApi api) { + /**Sets up an instance of `CameraSelectorHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraSelectorHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -827,11 +878,10 @@ static void setup( Number identifierArg = (Number) args.get(0); Number lensFacingArg = (Number) args.get(1); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - (lensFacingArg == null) ? null : lensFacingArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), (lensFacingArg == null) ? null : lensFacingArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -853,12 +903,10 @@ static void setup( Number identifierArg = (Number) args.get(0); List cameraInfoIdsArg = (List) args.get(1); try { - List output = - api.filter( - (identifierArg == null) ? null : identifierArg.longValue(), - cameraInfoIdsArg); + List output = api.filter((identifierArg == null) ? null : identifierArg.longValue(), cameraInfoIdsArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -878,7 +926,7 @@ public CameraSelectorFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -887,9 +935,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void create( - @NonNull Long identifierArg, @Nullable Long lensFacingArg, @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @Nullable Long lensFacingArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.CameraSelectorFlutterApi.create", getCodec()); @@ -903,16 +949,13 @@ public interface ProcessCameraProviderHostApi { void getInstance(@NonNull Result result); - @NonNull + @NonNull List getAvailableCameraInfos(@NonNull Long identifier); - @NonNull - Long bindToLifecycle( - @NonNull Long identifier, - @NonNull Long cameraSelectorIdentifier, - @NonNull List useCaseIds); + @NonNull + Long bindToLifecycle(@NonNull Long identifier, @NonNull Long cameraSelectorIdentifier, @NonNull List useCaseIds); - @NonNull + @NonNull Boolean isBound(@NonNull Long identifier, @NonNull Long useCaseIdentifier); void unbind(@NonNull Long identifier, @NonNull List useCaseIds); @@ -923,18 +966,12 @@ Long bindToLifecycle( static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `ProcessCameraProviderHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable ProcessCameraProviderHostApi api) { + /**Sets up an instance of `ProcessCameraProviderHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ProcessCameraProviderHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -961,9 +998,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -971,11 +1006,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - List output = - api.getAvailableCameraInfos( - (identifierArg == null) ? null : identifierArg.longValue()); + List output = api.getAvailableCameraInfos((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -988,9 +1022,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1000,15 +1032,10 @@ public void error(Throwable error) { Number cameraSelectorIdentifierArg = (Number) args.get(1); List useCaseIdsArg = (List) args.get(2); try { - Long output = - api.bindToLifecycle( - (identifierArg == null) ? null : identifierArg.longValue(), - (cameraSelectorIdentifierArg == null) - ? null - : cameraSelectorIdentifierArg.longValue(), - useCaseIdsArg); + Long output = api.bindToLifecycle((identifierArg == null) ? null : identifierArg.longValue(), (cameraSelectorIdentifierArg == null) ? null : cameraSelectorIdentifierArg.longValue(), useCaseIdsArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1021,9 +1048,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1032,12 +1057,10 @@ public void error(Throwable error) { Number identifierArg = (Number) args.get(0); Number useCaseIdentifierArg = (Number) args.get(1); try { - Boolean output = - api.isBound( - (identifierArg == null) ? null : identifierArg.longValue(), - (useCaseIdentifierArg == null) ? null : useCaseIdentifierArg.longValue()); + Boolean output = api.isBound((identifierArg == null) ? null : identifierArg.longValue(), (useCaseIdentifierArg == null) ? null : useCaseIdentifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1050,9 +1073,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1061,10 +1082,10 @@ public void error(Throwable error) { Number identifierArg = (Number) args.get(0); List useCaseIdsArg = (List) args.get(1); try { - api.unbind( - (identifierArg == null) ? null : identifierArg.longValue(), useCaseIdsArg); + api.unbind((identifierArg == null) ? null : identifierArg.longValue(), useCaseIdsArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1077,9 +1098,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1089,7 +1108,8 @@ public void error(Throwable error) { try { api.unbindAll((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1109,7 +1129,7 @@ public ProcessCameraProviderFlutterApi(@NonNull BinaryMessenger argBinaryMesseng this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1118,13 +1138,10 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create", getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -1133,17 +1150,17 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CameraHostApi { - @NonNull + @NonNull Long getCameraInfo(@NonNull Long identifier); - @NonNull + @NonNull Long getCameraControl(@NonNull Long identifier); /** The codec used by CameraHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** Sets up an instance of `CameraHostApi` to handle messages through the `binaryMessenger`. */ + /**Sets up an instance of `CameraHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraHostApi api) { { BasicMessageChannel channel = @@ -1156,10 +1173,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraHost ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getCameraInfo((identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getCameraInfo((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1180,11 +1197,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraHost ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getCameraControl( - (identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getCameraControl((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1204,7 +1220,7 @@ public CameraFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1213,7 +1229,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -1253,28 +1268,21 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface SystemServicesHostApi { - void requestCameraPermissions( - @NonNull Boolean enableAudio, @NonNull Result result); + void requestCameraPermissions(@NonNull Boolean enableAudio, @NonNull Result result); - @NonNull + @NonNull String getTempFilePath(@NonNull String prefix, @NonNull String suffix); /** The codec used by SystemServicesHostApi. */ static @NonNull MessageCodec getCodec() { return SystemServicesHostApiCodec.INSTANCE; } - /** - * Sets up an instance of `SystemServicesHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable SystemServicesHostApi api) { + /**Sets up an instance of `SystemServicesHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable SystemServicesHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1303,9 +1311,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1316,7 +1322,8 @@ public void error(Throwable error) { try { String output = api.getTempFilePath(prefixArg, suffixArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1336,7 +1343,7 @@ public SystemServicesFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1345,13 +1352,10 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void onCameraError(@NonNull String errorDescriptionArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError", getCodec()); channel.send( new ArrayList(Collections.singletonList(errorDescriptionArg)), channelReply -> callback.reply(null)); @@ -1360,30 +1364,23 @@ public void onCameraError(@NonNull String errorDescriptionArg, @NonNull Reply getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `DeviceOrientationManagerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrientationManagerHostApi api) { + /**Sets up an instance of `DeviceOrientationManagerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrientationManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1392,11 +1389,10 @@ static void setup( Boolean isFrontFacingArg = (Boolean) args.get(0); Number sensorOrientationArg = (Number) args.get(1); try { - api.startListeningForDeviceOrientationChange( - isFrontFacingArg, - (sensorOrientationArg == null) ? null : sensorOrientationArg.longValue()); + api.startListeningForDeviceOrientationChange(isFrontFacingArg, (sensorOrientationArg == null) ? null : sensorOrientationArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1409,9 +1405,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1419,7 +1413,8 @@ static void setup( try { api.stopListeningForDeviceOrientationChange(); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1432,9 +1427,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1442,7 +1435,8 @@ static void setup( try { Long output = api.getDefaultDisplayRotation(); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1462,7 +1456,7 @@ public DeviceOrientationManagerFlutterApi(@NonNull BinaryMessenger argBinaryMess this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1471,14 +1465,10 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void onDeviceOrientationChanged( - @NonNull String orientationArg, @NonNull Reply callback) { + public void onDeviceOrientationChanged(@NonNull String orientationArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged", getCodec()); channel.send( new ArrayList(Collections.singletonList(orientationArg)), channelReply -> callback.reply(null)); @@ -1514,15 +1504,14 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface PreviewHostApi { - void create( - @NonNull Long identifier, @Nullable Long rotation, @Nullable Long resolutionSelectorId); + void create(@NonNull Long identifier, @Nullable Long rotation, @Nullable Long resolutionSelectorId); - @NonNull + @NonNull Long setSurfaceProvider(@NonNull Long identifier); void releaseFlutterSurfaceTexture(); - @NonNull + @NonNull ResolutionInfo getResolutionInfo(@NonNull Long identifier); void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation); @@ -1531,7 +1520,7 @@ void create( static @NonNull MessageCodec getCodec() { return PreviewHostApiCodec.INSTANCE; } - /** Sets up an instance of `PreviewHostApi` to handle messages through the `binaryMessenger`. */ + /**Sets up an instance of `PreviewHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHostApi api) { { BasicMessageChannel channel = @@ -1546,14 +1535,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos Number rotationArg = (Number) args.get(1); Number resolutionSelectorIdArg = (Number) args.get(2); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - (rotationArg == null) ? null : rotationArg.longValue(), - (resolutionSelectorIdArg == null) - ? null - : resolutionSelectorIdArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue(), (resolutionSelectorIdArg == null) ? null : resolutionSelectorIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1566,9 +1551,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1576,11 +1559,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.setSurfaceProvider( - (identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.setSurfaceProvider((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1593,9 +1575,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1603,7 +1583,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos try { api.releaseFlutterSurfaceTexture(); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1624,11 +1605,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - ResolutionInfo output = - api.getResolutionInfo( - (identifierArg == null) ? null : identifierArg.longValue()); + ResolutionInfo output = api.getResolutionInfo((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1650,11 +1630,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos Number identifierArg = (Number) args.get(0); Number rotationArg = (Number) args.get(1); try { - api.setTargetRotation( - (identifierArg == null) ? null : identifierArg.longValue(), - (rotationArg == null) ? null : rotationArg.longValue()); + api.setTargetRotation((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1669,10 +1648,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface VideoCaptureHostApi { - @NonNull + @NonNull Long withOutput(@NonNull Long videoOutputId); - @NonNull + @NonNull Long getOutput(@NonNull Long identifier); void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation); @@ -1681,10 +1660,7 @@ public interface VideoCaptureHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `VideoCaptureHostApi` to handle messages through the - * `binaryMessenger`. - */ + /**Sets up an instance of `VideoCaptureHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptureHostApi api) { { BasicMessageChannel channel = @@ -1697,11 +1673,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptu ArrayList args = (ArrayList) message; Number videoOutputIdArg = (Number) args.get(0); try { - Long output = - api.withOutput( - (videoOutputIdArg == null) ? null : videoOutputIdArg.longValue()); + Long output = api.withOutput((videoOutputIdArg == null) ? null : videoOutputIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1722,10 +1697,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptu ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getOutput((identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getOutput((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1738,9 +1713,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptu { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1749,11 +1722,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptu Number identifierArg = (Number) args.get(0); Number rotationArg = (Number) args.get(1); try { - api.setTargetRotation( - (identifierArg == null) ? null : identifierArg.longValue(), - (rotationArg == null) ? null : rotationArg.longValue()); + api.setTargetRotation((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1773,7 +1745,7 @@ public VideoCaptureFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1782,7 +1754,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -1795,28 +1766,22 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface RecorderHostApi { - void create( - @NonNull Long identifier, - @Nullable Long aspectRatio, - @Nullable Long bitRate, - @Nullable Long qualitySelectorId); + void create(@NonNull Long identifier, @Nullable Long aspectRatio, @Nullable Long bitRate, @Nullable Long qualitySelectorId); - @NonNull + @NonNull Long getAspectRatio(@NonNull Long identifier); - @NonNull + @NonNull Long getTargetVideoEncodingBitRate(@NonNull Long identifier); - @NonNull + @NonNull Long prepareRecording(@NonNull Long identifier, @NonNull String path); /** The codec used by RecorderHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `RecorderHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `RecorderHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHostApi api) { { BasicMessageChannel channel = @@ -1832,13 +1797,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo Number bitRateArg = (Number) args.get(2); Number qualitySelectorIdArg = (Number) args.get(3); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - (aspectRatioArg == null) ? null : aspectRatioArg.longValue(), - (bitRateArg == null) ? null : bitRateArg.longValue(), - (qualitySelectorIdArg == null) ? null : qualitySelectorIdArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), (aspectRatioArg == null) ? null : aspectRatioArg.longValue(), (bitRateArg == null) ? null : bitRateArg.longValue(), (qualitySelectorIdArg == null) ? null : qualitySelectorIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1859,11 +1821,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getAspectRatio( - (identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getAspectRatio((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1876,9 +1837,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1886,11 +1845,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.getTargetVideoEncodingBitRate( - (identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.getTargetVideoEncodingBitRate((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1912,11 +1870,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo Number identifierArg = (Number) args.get(0); String pathArg = (String) args.get(1); try { - Long output = - api.prepareRecording( - (identifierArg == null) ? null : identifierArg.longValue(), pathArg); + Long output = api.prepareRecording((identifierArg == null) ? null : identifierArg.longValue(), pathArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1936,7 +1893,7 @@ public RecorderFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1945,12 +1902,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void create( - @NonNull Long identifierArg, - @Nullable Long aspectRatioArg, - @Nullable Long bitRateArg, - @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @Nullable Long aspectRatioArg, @Nullable Long bitRateArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.RecorderFlutterApi.create", getCodec()); @@ -1962,19 +1914,15 @@ public void create( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface PendingRecordingHostApi { - @NonNull + @NonNull Long start(@NonNull Long identifier); /** The codec used by PendingRecordingHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `PendingRecordingHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable PendingRecordingHostApi api) { + /**Sets up an instance of `PendingRecordingHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PendingRecordingHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -1986,10 +1934,10 @@ static void setup( ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = - api.start((identifierArg == null) ? null : identifierArg.longValue()); + Long output = api.start((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2009,7 +1957,7 @@ public PendingRecordingFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2018,7 +1966,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2043,9 +1990,7 @@ public interface RecordingHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `RecordingHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `RecordingHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingHostApi api) { { BasicMessageChannel channel = @@ -2060,7 +2005,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingH try { api.close((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2083,7 +2029,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingH try { api.pause((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2106,7 +2053,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingH try { api.resume((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2129,7 +2077,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingH try { api.stop((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2149,7 +2098,7 @@ public RecordingFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2158,7 +2107,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2171,11 +2119,7 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ImageCaptureHostApi { - void create( - @NonNull Long identifier, - @Nullable Long targetRotation, - @Nullable Long flashMode, - @Nullable Long resolutionSelectorId); + void create(@NonNull Long identifier, @Nullable Long targetRotation, @Nullable Long flashMode, @Nullable Long resolutionSelectorId); void setFlashMode(@NonNull Long identifier, @NonNull Long flashMode); @@ -2187,10 +2131,7 @@ void create( static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `ImageCaptureHostApi` to handle messages through the - * `binaryMessenger`. - */ + /**Sets up an instance of `ImageCaptureHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageCaptureHostApi api) { { BasicMessageChannel channel = @@ -2206,15 +2147,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageCaptu Number flashModeArg = (Number) args.get(2); Number resolutionSelectorIdArg = (Number) args.get(3); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - (targetRotationArg == null) ? null : targetRotationArg.longValue(), - (flashModeArg == null) ? null : flashModeArg.longValue(), - (resolutionSelectorIdArg == null) - ? null - : resolutionSelectorIdArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), (targetRotationArg == null) ? null : targetRotationArg.longValue(), (flashModeArg == null) ? null : flashModeArg.longValue(), (resolutionSelectorIdArg == null) ? null : resolutionSelectorIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2236,11 +2172,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageCaptu Number identifierArg = (Number) args.get(0); Number flashModeArg = (Number) args.get(1); try { - api.setFlashMode( - (identifierArg == null) ? null : identifierArg.longValue(), - (flashModeArg == null) ? null : flashModeArg.longValue()); + api.setFlashMode((identifierArg == null) ? null : identifierArg.longValue(), (flashModeArg == null) ? null : flashModeArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2273,8 +2208,7 @@ public void error(Throwable error) { } }; - api.takePicture( - (identifierArg == null) ? null : identifierArg.longValue(), resultCallback); + api.takePicture((identifierArg == null) ? null : identifierArg.longValue(), resultCallback); }); } else { channel.setMessageHandler(null); @@ -2283,9 +2217,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2294,11 +2226,10 @@ public void error(Throwable error) { Number identifierArg = (Number) args.get(0); Number rotationArg = (Number) args.get(1); try { - api.setTargetRotation( - (identifierArg == null) ? null : identifierArg.longValue(), - (rotationArg == null) ? null : rotationArg.longValue()); + api.setTargetRotation((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2312,8 +2243,7 @@ public void error(Throwable error) { } private static class ResolutionStrategyHostApiCodec extends StandardMessageCodec { - public static final ResolutionStrategyHostApiCodec INSTANCE = - new ResolutionStrategyHostApiCodec(); + public static final ResolutionStrategyHostApiCodec INSTANCE = new ResolutionStrategyHostApiCodec(); private ResolutionStrategyHostApiCodec() {} @@ -2341,19 +2271,14 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ResolutionStrategyHostApi { - void create( - @NonNull Long identifier, @Nullable ResolutionInfo boundSize, @Nullable Long fallbackRule); + void create(@NonNull Long identifier, @Nullable ResolutionInfo boundSize, @Nullable Long fallbackRule); /** The codec used by ResolutionStrategyHostApi. */ static @NonNull MessageCodec getCodec() { return ResolutionStrategyHostApiCodec.INSTANCE; } - /** - * Sets up an instance of `ResolutionStrategyHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable ResolutionStrategyHostApi api) { + /**Sets up an instance of `ResolutionStrategyHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ResolutionStrategyHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2367,12 +2292,10 @@ static void setup( ResolutionInfo boundSizeArg = (ResolutionInfo) args.get(1); Number fallbackRuleArg = (Number) args.get(2); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - boundSizeArg, - (fallbackRuleArg == null) ? null : fallbackRuleArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), boundSizeArg, (fallbackRuleArg == null) ? null : fallbackRuleArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2387,21 +2310,14 @@ static void setup( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ResolutionSelectorHostApi { - void create( - @NonNull Long identifier, - @Nullable Long resolutionStrategyIdentifier, - @Nullable Long aspectRatioStrategyIdentifier); + void create(@NonNull Long identifier, @Nullable Long resolutionStrategyIdentifier, @Nullable Long aspectRatioStrategyIdentifier); /** The codec used by ResolutionSelectorHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `ResolutionSelectorHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable ResolutionSelectorHostApi api) { + /**Sets up an instance of `ResolutionSelectorHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ResolutionSelectorHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2415,16 +2331,10 @@ static void setup( Number resolutionStrategyIdentifierArg = (Number) args.get(1); Number aspectRatioStrategyIdentifierArg = (Number) args.get(2); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - (resolutionStrategyIdentifierArg == null) - ? null - : resolutionStrategyIdentifierArg.longValue(), - (aspectRatioStrategyIdentifierArg == null) - ? null - : aspectRatioStrategyIdentifierArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), (resolutionStrategyIdentifierArg == null) ? null : resolutionStrategyIdentifierArg.longValue(), (aspectRatioStrategyIdentifierArg == null) ? null : aspectRatioStrategyIdentifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2439,25 +2349,18 @@ static void setup( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface AspectRatioStrategyHostApi { - void create( - @NonNull Long identifier, @NonNull Long preferredAspectRatio, @NonNull Long fallbackRule); + void create(@NonNull Long identifier, @NonNull Long preferredAspectRatio, @NonNull Long fallbackRule); /** The codec used by AspectRatioStrategyHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `AspectRatioStrategyHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable AspectRatioStrategyHostApi api) { + /**Sets up an instance of `AspectRatioStrategyHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable AspectRatioStrategyHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.AspectRatioStrategyHostApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.AspectRatioStrategyHostApi.create", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2467,14 +2370,10 @@ static void setup( Number preferredAspectRatioArg = (Number) args.get(1); Number fallbackRuleArg = (Number) args.get(2); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - (preferredAspectRatioArg == null) - ? null - : preferredAspectRatioArg.longValue(), - (fallbackRuleArg == null) ? null : fallbackRuleArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), (preferredAspectRatioArg == null) ? null : preferredAspectRatioArg.longValue(), (fallbackRuleArg == null) ? null : fallbackRuleArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2521,7 +2420,7 @@ public CameraStateFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2530,12 +2429,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return CameraStateFlutterApiCodec.INSTANCE; } - - public void create( - @NonNull Long identifierArg, - @NonNull CameraStateTypeData typeArg, - @Nullable Long errorIdentifierArg, - @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @NonNull CameraStateTypeData typeArg, @Nullable Long errorIdentifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.CameraStateFlutterApi.create", getCodec()); @@ -2579,7 +2473,7 @@ public ExposureStateFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2588,19 +2482,12 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return ExposureStateFlutterApiCodec.INSTANCE; } - - public void create( - @NonNull Long identifierArg, - @NonNull ExposureCompensationRange exposureCompensationRangeArg, - @NonNull Double exposureCompensationStepArg, - @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @NonNull ExposureCompensationRange exposureCompensationRangeArg, @NonNull Double exposureCompensationStepArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.ExposureStateFlutterApi.create", getCodec()); channel.send( - new ArrayList( - Arrays.asList( - identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)), + new ArrayList(Arrays.asList(identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)), channelReply -> callback.reply(null)); } } @@ -2612,7 +2499,7 @@ public ZoomStateFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2621,12 +2508,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void create( - @NonNull Long identifierArg, - @NonNull Double minZoomRatioArg, - @NonNull Double maxZoomRatioArg, - @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @NonNull Double minZoomRatioArg, @NonNull Double maxZoomRatioArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.ZoomStateFlutterApi.create", getCodec()); @@ -2638,10 +2520,7 @@ public void create( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ImageAnalysisHostApi { - void create( - @NonNull Long identifier, - @Nullable Long targetRotation, - @Nullable Long resolutionSelectorId); + void create(@NonNull Long identifier, @Nullable Long targetRotation, @Nullable Long resolutionSelectorId); void setAnalyzer(@NonNull Long identifier, @NonNull Long analyzerIdentifier); @@ -2653,12 +2532,8 @@ void create( static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `ImageAnalysisHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnalysisHostApi api) { + /**Sets up an instance of `ImageAnalysisHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnalysisHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2672,14 +2547,10 @@ static void setup( Number targetRotationArg = (Number) args.get(1); Number resolutionSelectorIdArg = (Number) args.get(2); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - (targetRotationArg == null) ? null : targetRotationArg.longValue(), - (resolutionSelectorIdArg == null) - ? null - : resolutionSelectorIdArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), (targetRotationArg == null) ? null : targetRotationArg.longValue(), (resolutionSelectorIdArg == null) ? null : resolutionSelectorIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2701,11 +2572,10 @@ static void setup( Number identifierArg = (Number) args.get(0); Number analyzerIdentifierArg = (Number) args.get(1); try { - api.setAnalyzer( - (identifierArg == null) ? null : identifierArg.longValue(), - (analyzerIdentifierArg == null) ? null : analyzerIdentifierArg.longValue()); + api.setAnalyzer((identifierArg == null) ? null : identifierArg.longValue(), (analyzerIdentifierArg == null) ? null : analyzerIdentifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2718,9 +2588,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2730,7 +2598,8 @@ static void setup( try { api.clearAnalyzer((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2743,9 +2612,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2754,11 +2621,10 @@ static void setup( Number identifierArg = (Number) args.get(0); Number rotationArg = (Number) args.get(1); try { - api.setTargetRotation( - (identifierArg == null) ? null : identifierArg.longValue(), - (rotationArg == null) ? null : rotationArg.longValue()); + api.setTargetRotation((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2779,9 +2645,7 @@ public interface AnalyzerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `AnalyzerHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `AnalyzerHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable AnalyzerHostApi api) { { BasicMessageChannel channel = @@ -2796,7 +2660,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable AnalyzerHo try { api.create((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2817,9 +2682,7 @@ public interface ObserverHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `ObserverHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `ObserverHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ObserverHostApi api) { { BasicMessageChannel channel = @@ -2834,7 +2697,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ObserverHo try { api.create((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2854,7 +2718,7 @@ public ObserverFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2863,11 +2727,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void onChanged( - @NonNull Long identifierArg, - @NonNull Long valueIdentifierArg, - @NonNull Reply callback) { + public void onChanged(@NonNull Long identifierArg, @NonNull Long valueIdentifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.ObserverFlutterApi.onChanged", getCodec()); @@ -2884,7 +2744,7 @@ public CameraStateErrorFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2893,9 +2753,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void create( - @NonNull Long identifierArg, @NonNull Long codeArg, @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @NonNull Long codeArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.CameraStateErrorFlutterApi.create", getCodec()); @@ -2938,16 +2796,14 @@ public interface LiveDataHostApi { void removeObservers(@NonNull Long identifier); - @Nullable + @Nullable Long getValue(@NonNull Long identifier, @NonNull LiveDataSupportedTypeData type); /** The codec used by LiveDataHostApi. */ static @NonNull MessageCodec getCodec() { return LiveDataHostApiCodec.INSTANCE; } - /** - * Sets up an instance of `LiveDataHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `LiveDataHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable LiveDataHostApi api) { { BasicMessageChannel channel = @@ -2961,11 +2817,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable LiveDataHo Number identifierArg = (Number) args.get(0); Number observerIdentifierArg = (Number) args.get(1); try { - api.observe( - (identifierArg == null) ? null : identifierArg.longValue(), - (observerIdentifierArg == null) ? null : observerIdentifierArg.longValue()); + api.observe((identifierArg == null) ? null : identifierArg.longValue(), (observerIdentifierArg == null) ? null : observerIdentifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2988,7 +2843,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable LiveDataHo try { api.removeObservers((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3010,11 +2866,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable LiveDataHo Number identifierArg = (Number) args.get(0); LiveDataSupportedTypeData typeArg = (LiveDataSupportedTypeData) args.get(1); try { - Long output = - api.getValue( - (identifierArg == null) ? null : identifierArg.longValue(), typeArg); + Long output = api.getValue((identifierArg == null) ? null : identifierArg.longValue(), typeArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3061,7 +2916,7 @@ public LiveDataFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3070,11 +2925,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return LiveDataFlutterApiCodec.INSTANCE; } - - public void create( - @NonNull Long identifierArg, - @NonNull LiveDataSupportedTypeData typeArg, - @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @NonNull LiveDataSupportedTypeData typeArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.LiveDataFlutterApi.create", getCodec()); @@ -3091,7 +2942,7 @@ public AnalyzerFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3100,7 +2951,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3109,11 +2959,7 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } - - public void analyze( - @NonNull Long identifierArg, - @NonNull Long imageProxyIdentifierArg, - @NonNull Reply callback) { + public void analyze(@NonNull Long identifierArg, @NonNull Long imageProxyIdentifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.AnalyzerFlutterApi.analyze", getCodec()); @@ -3125,7 +2971,7 @@ public void analyze( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ImageProxyHostApi { - @NonNull + @NonNull List getPlanes(@NonNull Long identifier); void close(@NonNull Long identifier); @@ -3134,9 +2980,7 @@ public interface ImageProxyHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `ImageProxyHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `ImageProxyHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageProxyHostApi api) { { BasicMessageChannel channel = @@ -3149,10 +2993,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageProxy ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - List output = - api.getPlanes((identifierArg == null) ? null : identifierArg.longValue()); + List output = api.getPlanes((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3175,7 +3019,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageProxy try { api.close((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3195,7 +3040,7 @@ public ImageProxyFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3204,13 +3049,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void create( - @NonNull Long identifierArg, - @NonNull Long formatArg, - @NonNull Long heightArg, - @NonNull Long widthArg, - @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @NonNull Long formatArg, @NonNull Long heightArg, @NonNull Long widthArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.ImageProxyFlutterApi.create", getCodec()); @@ -3227,7 +3066,7 @@ public PlaneProxyFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3236,19 +3075,12 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void create( - @NonNull Long identifierArg, - @NonNull byte[] bufferArg, - @NonNull Long pixelStrideArg, - @NonNull Long rowStrideArg, - @NonNull Reply callback) { + public void create(@NonNull Long identifierArg, @NonNull byte[] bufferArg, @NonNull Long pixelStrideArg, @NonNull Long rowStrideArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.PlaneProxyFlutterApi.create", getCodec()); channel.send( - new ArrayList( - Arrays.asList(identifierArg, bufferArg, pixelStrideArg, rowStrideArg)), + new ArrayList(Arrays.asList(identifierArg, bufferArg, pixelStrideArg, rowStrideArg)), channelReply -> callback.reply(null)); } } @@ -3287,24 +3119,17 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface QualitySelectorHostApi { - void create( - @NonNull Long identifier, - @NonNull List videoQualityDataList, - @Nullable Long fallbackStrategyId); + void create(@NonNull Long identifier, @NonNull List videoQualityDataList, @Nullable Long fallbackStrategyId); - @NonNull + @NonNull ResolutionInfo getResolution(@NonNull Long cameraInfoId, @NonNull VideoQuality quality); /** The codec used by QualitySelectorHostApi. */ static @NonNull MessageCodec getCodec() { return QualitySelectorHostApiCodec.INSTANCE; } - /** - * Sets up an instance of `QualitySelectorHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable QualitySelectorHostApi api) { + /**Sets up an instance of `QualitySelectorHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable QualitySelectorHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3315,16 +3140,13 @@ static void setup( ArrayList wrapped = new ArrayList(); ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); - List videoQualityDataListArg = - (List) args.get(1); + List videoQualityDataListArg = (List) args.get(1); Number fallbackStrategyIdArg = (Number) args.get(2); try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - videoQualityDataListArg, - (fallbackStrategyIdArg == null) ? null : fallbackStrategyIdArg.longValue()); + api.create((identifierArg == null) ? null : identifierArg.longValue(), videoQualityDataListArg, (fallbackStrategyIdArg == null) ? null : fallbackStrategyIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3337,24 +3159,19 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.QualitySelectorHostApi.getResolution", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.QualitySelectorHostApi.getResolution", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); ArrayList args = (ArrayList) message; Number cameraInfoIdArg = (Number) args.get(0); - VideoQuality qualityArg = - args.get(1) == null ? null : VideoQuality.values()[(int) args.get(1)]; + VideoQuality qualityArg = args.get(1) == null ? null : VideoQuality.values()[(int) args.get(1)]; try { - ResolutionInfo output = - api.getResolution( - (cameraInfoIdArg == null) ? null : cameraInfoIdArg.longValue(), - qualityArg); + ResolutionInfo output = api.getResolution((cameraInfoIdArg == null) ? null : cameraInfoIdArg.longValue(), qualityArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3369,21 +3186,14 @@ static void setup( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface FallbackStrategyHostApi { - void create( - @NonNull Long identifier, - @NonNull VideoQuality quality, - @NonNull VideoResolutionFallbackRule fallbackRule); + void create(@NonNull Long identifier, @NonNull VideoQuality quality, @NonNull VideoResolutionFallbackRule fallbackRule); /** The codec used by FallbackStrategyHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `FallbackStrategyHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable FallbackStrategyHostApi api) { + /**Sets up an instance of `FallbackStrategyHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FallbackStrategyHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3394,19 +3204,13 @@ static void setup( ArrayList wrapped = new ArrayList(); ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); - VideoQuality qualityArg = - args.get(1) == null ? null : VideoQuality.values()[(int) args.get(1)]; - VideoResolutionFallbackRule fallbackRuleArg = - args.get(2) == null - ? null - : VideoResolutionFallbackRule.values()[(int) args.get(2)]; + VideoQuality qualityArg = args.get(1) == null ? null : VideoQuality.values()[(int) args.get(1)]; + VideoResolutionFallbackRule fallbackRuleArg = args.get(2) == null ? null : VideoResolutionFallbackRule.values()[(int) args.get(2)]; try { - api.create( - (identifierArg == null) ? null : identifierArg.longValue(), - qualityArg, - fallbackRuleArg); + api.create((identifierArg == null) ? null : identifierArg.longValue(), qualityArg, fallbackRuleArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3421,22 +3225,22 @@ static void setup( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CameraControlHostApi { - void enableTorch( - @NonNull Long identifier, @NonNull Boolean torch, @NonNull Result result); + void enableTorch(@NonNull Long identifier, @NonNull Boolean torch, @NonNull Result result); + + void setZoomRatio(@NonNull Long identifier, @NonNull Double ratio, @NonNull Result result); + + void startFocusAndMetering(@NonNull Long identifier, @NonNull Long focusMeteringActionId, @NonNull Result result); - void setZoomRatio( - @NonNull Long identifier, @NonNull Double ratio, @NonNull Result result); + void cancelFocusAndMetering(@NonNull Long identifier, @NonNull Result result); + + void setExposureCompensationIndex(@NonNull Long identifier, @NonNull Long index, @NonNull Result result); /** The codec used by CameraControlHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `CameraControlHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable CameraControlHostApi api) { + /**Sets up an instance of `CameraControlHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraControlHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3461,10 +3265,7 @@ public void error(Throwable error) { } }; - api.enableTorch( - (identifierArg == null) ? null : identifierArg.longValue(), - torchArg, - resultCallback); + api.enableTorch((identifierArg == null) ? null : identifierArg.longValue(), torchArg, resultCallback); }); } else { channel.setMessageHandler(null); @@ -3473,9 +3274,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.CameraControlHostApi.setZoomRatio", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.CameraControlHostApi.setZoomRatio", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3496,10 +3295,96 @@ public void error(Throwable error) { } }; - api.setZoomRatio( - (identifierArg == null) ? null : identifierArg.longValue(), - ratioArg, - resultCallback); + api.setZoomRatio((identifierArg == null) ? null : identifierArg.longValue(), ratioArg, resultCallback); + }); + } else { + channel.setMessageHandler(null); + } + } + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number identifierArg = (Number) args.get(0); + Number focusMeteringActionIdArg = (Number) args.get(1); + Result resultCallback = + new Result() { + public void success(Long result) { + wrapped.add(0, result); + reply.reply(wrapped); + } + + public void error(Throwable error) { + ArrayList wrappedError = wrapError(error); + reply.reply(wrappedError); + } + }; + + api.startFocusAndMetering((identifierArg == null) ? null : identifierArg.longValue(), (focusMeteringActionIdArg == null) ? null : focusMeteringActionIdArg.longValue(), resultCallback); + }); + } else { + channel.setMessageHandler(null); + } + } + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number identifierArg = (Number) args.get(0); + Result resultCallback = + new Result() { + public void success(Void result) { + wrapped.add(0, null); + reply.reply(wrapped); + } + + public void error(Throwable error) { + ArrayList wrappedError = wrapError(error); + reply.reply(wrappedError); + } + }; + + api.cancelFocusAndMetering((identifierArg == null) ? null : identifierArg.longValue(), resultCallback); + }); + } else { + channel.setMessageHandler(null); + } + } + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number identifierArg = (Number) args.get(0); + Number indexArg = (Number) args.get(1); + Result resultCallback = + new Result() { + public void success(Long result) { + wrapped.add(0, result); + reply.reply(wrapped); + } + + public void error(Throwable error) { + ArrayList wrappedError = wrapError(error); + reply.reply(wrappedError); + } + }; + + api.setExposureCompensationIndex((identifierArg == null) ? null : identifierArg.longValue(), (indexArg == null) ? null : indexArg.longValue(), resultCallback); }); } else { channel.setMessageHandler(null); @@ -3515,7 +3400,7 @@ public CameraControlFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3524,7 +3409,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3534,4 +3418,318 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { channelReply -> callback.reply(null)); } } + + private static class FocusMeteringActionHostApiCodec extends StandardMessageCodec { + public static final FocusMeteringActionHostApiCodec INSTANCE = new FocusMeteringActionHostApiCodec(); + + private FocusMeteringActionHostApiCodec() {} + + @Override + protected Object readValueOfType(byte type, @NonNull ByteBuffer buffer) { + switch (type) { + case (byte) 128: + return MeteringPointInfo.fromList((ArrayList) readValue(buffer)); + default: + return super.readValueOfType(type, buffer); + } + } + + @Override + protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { + if (value instanceof MeteringPointInfo) { + stream.write(128); + writeValue(stream, ((MeteringPointInfo) value).toList()); + } else { + super.writeValue(stream, value); + } + } + } + + /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ + public interface FocusMeteringActionHostApi { + + void create(@NonNull Long identifier, @NonNull List meteringPointInfos); + + /** The codec used by FocusMeteringActionHostApi. */ + static @NonNull MessageCodec getCodec() { + return FocusMeteringActionHostApiCodec.INSTANCE; + } + /**Sets up an instance of `FocusMeteringActionHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeteringActionHostApi api) { + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.FocusMeteringActionHostApi.create", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number identifierArg = (Number) args.get(0); + List meteringPointInfosArg = (List) args.get(1); + try { + api.create((identifierArg == null) ? null : identifierArg.longValue(), meteringPointInfosArg); + wrapped.add(0, null); + } + catch (Throwable exception) { + ArrayList wrappedError = wrapError(exception); + wrapped = wrappedError; + } + reply.reply(wrapped); + }); + } else { + channel.setMessageHandler(null); + } + } + } + } + /** Generated class from Pigeon that represents Flutter messages that can be called from Java. */ + public static class FocusMeteringActionFlutterApi { + private final @NonNull BinaryMessenger binaryMessenger; + + public FocusMeteringActionFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { + this.binaryMessenger = argBinaryMessenger; + } + + /** Public interface for sending reply. */ + @SuppressWarnings("UnknownNullness") + public interface Reply { + void reply(T reply); + } + /** The codec used by FocusMeteringActionFlutterApi. */ + static @NonNull MessageCodec getCodec() { + return new StandardMessageCodec(); + } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.FocusMeteringActionFlutterApi.create", getCodec()); + channel.send( + new ArrayList(Collections.singletonList(identifierArg)), + channelReply -> callback.reply(null)); + } + } + /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ + public interface FocusMeteringResultHostApi { + + @NonNull + Boolean isFocusSuccessful(@NonNull Long identifier); + + /** The codec used by FocusMeteringResultHostApi. */ + static @NonNull MessageCodec getCodec() { + return new StandardMessageCodec(); + } + /**Sets up an instance of `FocusMeteringResultHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeteringResultHostApi api) { + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number identifierArg = (Number) args.get(0); + try { + Boolean output = api.isFocusSuccessful((identifierArg == null) ? null : identifierArg.longValue()); + wrapped.add(0, output); + } + catch (Throwable exception) { + ArrayList wrappedError = wrapError(exception); + wrapped = wrappedError; + } + reply.reply(wrapped); + }); + } else { + channel.setMessageHandler(null); + } + } + } + } + /** Generated class from Pigeon that represents Flutter messages that can be called from Java. */ + public static class FocusMeteringResultFlutterApi { + private final @NonNull BinaryMessenger binaryMessenger; + + public FocusMeteringResultFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { + this.binaryMessenger = argBinaryMessenger; + } + + /** Public interface for sending reply. */ + @SuppressWarnings("UnknownNullness") + public interface Reply { + void reply(T reply); + } + /** The codec used by FocusMeteringResultFlutterApi. */ + static @NonNull MessageCodec getCodec() { + return new StandardMessageCodec(); + } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.FocusMeteringResultFlutterApi.create", getCodec()); + channel.send( + new ArrayList(Collections.singletonList(identifierArg)), + channelReply -> callback.reply(null)); + } + } + /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ + public interface MeteringPointHostApi { + + void create(@NonNull Long identifier, @NonNull Double x, @NonNull Double y, @Nullable Double size); + + @NonNull + Double getDefaultPointSize(); + + /** The codec used by MeteringPointHostApi. */ + static @NonNull MessageCodec getCodec() { + return new StandardMessageCodec(); + } + /**Sets up an instance of `MeteringPointHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable MeteringPointHostApi api) { + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.MeteringPointHostApi.create", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number identifierArg = (Number) args.get(0); + Double xArg = (Double) args.get(1); + Double yArg = (Double) args.get(2); + Double sizeArg = (Double) args.get(3); + try { + api.create((identifierArg == null) ? null : identifierArg.longValue(), xArg, yArg, sizeArg); + wrapped.add(0, null); + } + catch (Throwable exception) { + ArrayList wrappedError = wrapError(exception); + wrapped = wrappedError; + } + reply.reply(wrapped); + }); + } else { + channel.setMessageHandler(null); + } + } + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + try { + Double output = api.getDefaultPointSize(); + wrapped.add(0, output); + } + catch (Throwable exception) { + ArrayList wrappedError = wrapError(exception); + wrapped = wrappedError; + } + reply.reply(wrapped); + }); + } else { + channel.setMessageHandler(null); + } + } + } + } + /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ + public interface DisplayOrientedMeteringPointFactoryHostApi { + + void create(@NonNull Long identifier, @NonNull Long cameraInfoId, @NonNull Long width, @NonNull Long height); + + @NonNull + Long createPoint(@NonNull Long x, @NonNull Long y, @Nullable Long size); + + @NonNull + Long getDefaultPointSize(); + + /** The codec used by DisplayOrientedMeteringPointFactoryHostApi. */ + static @NonNull MessageCodec getCodec() { + return new StandardMessageCodec(); + } + /**Sets up an instance of `DisplayOrientedMeteringPointFactoryHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DisplayOrientedMeteringPointFactoryHostApi api) { + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number identifierArg = (Number) args.get(0); + Number cameraInfoIdArg = (Number) args.get(1); + Number widthArg = (Number) args.get(2); + Number heightArg = (Number) args.get(3); + try { + api.create((identifierArg == null) ? null : identifierArg.longValue(), (cameraInfoIdArg == null) ? null : cameraInfoIdArg.longValue(), (widthArg == null) ? null : widthArg.longValue(), (heightArg == null) ? null : heightArg.longValue()); + wrapped.add(0, null); + } + catch (Throwable exception) { + ArrayList wrappedError = wrapError(exception); + wrapped = wrappedError; + } + reply.reply(wrapped); + }); + } else { + channel.setMessageHandler(null); + } + } + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number xArg = (Number) args.get(0); + Number yArg = (Number) args.get(1); + Number sizeArg = (Number) args.get(2); + try { + Long output = api.createPoint((xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue(), (sizeArg == null) ? null : sizeArg.longValue()); + wrapped.add(0, output); + } + catch (Throwable exception) { + ArrayList wrappedError = wrapError(exception); + wrapped = wrappedError; + } + reply.reply(wrapped); + }); + } else { + channel.setMessageHandler(null); + } + } + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize", getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList(); + try { + Long output = api.getDefaultPointSize(); + wrapped.add(0, output); + } + catch (Throwable exception) { + ArrayList wrappedError = wrapError(exception); + wrapped = wrappedError; + } + reply.reply(wrapped); + }); + } else { + channel.setMessageHandler(null); + } + } + } + } } 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 f1528bbeec8..42c29522bef 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 @@ -210,6 +210,37 @@ class VideoQualityData { } } +/// Convenience class for building [FocusMeteringAction] with multiple metering +/// points. +class MeteringPointInfo { + MeteringPointInfo({ + required this.meteringPointId, + this.meteringMode, + }); + + /// Instance manager ID corresponding to [MeteringPoint] that relates to this + /// info. + int meteringPointId; + + /// Metering mode represented by one of the [FocusMeteringAction] constants. + int? meteringMode; + + Object encode() { + return [ + meteringPointId, + meteringMode, + ]; + } + + static MeteringPointInfo decode(Object result) { + result as List; + return MeteringPointInfo( + meteringPointId: result[0]! as int, + meteringMode: result[1] as int?, + ); + } +} + class InstanceManagerHostApi { /// Constructor for [InstanceManagerHostApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default @@ -227,7 +258,8 @@ class InstanceManagerHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; + final List? replyList = + await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -283,8 +315,7 @@ abstract class JavaObjectFlutterApi { void dispose(int identifier); - static void setup(JavaObjectFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(JavaObjectFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaObjectFlutterApi.dispose', codec, @@ -294,7 +325,7 @@ abstract class JavaObjectFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectFlutterApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.JavaObjectFlutterApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -431,8 +462,7 @@ abstract class CameraInfoFlutterApi { void create(int identifier); - static void setup(CameraInfoFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(CameraInfoFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraInfoFlutterApi.create', codec, @@ -442,7 +472,7 @@ abstract class CameraInfoFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -469,8 +499,8 @@ class CameraSelectorHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraSelectorHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_lensFacing]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_lensFacing]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -487,13 +517,12 @@ class CameraSelectorHostApi { } } - Future> filter( - int arg_identifier, List arg_cameraInfoIds) async { + Future> filter(int arg_identifier, List arg_cameraInfoIds) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraSelectorHostApi.filter', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_cameraInfoIds]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_cameraInfoIds]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -521,8 +550,7 @@ abstract class CameraSelectorFlutterApi { void create(int identifier, int? lensFacing); - static void setup(CameraSelectorFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(CameraSelectorFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraSelectorFlutterApi.create', codec, @@ -532,7 +560,7 @@ abstract class CameraSelectorFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraSelectorFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -560,7 +588,8 @@ class ProcessCameraProviderHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; + final List? replyList = + await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -584,8 +613,7 @@ class ProcessCameraProviderHostApi { Future> getAvailableCameraInfos(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', - codec, + 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -610,17 +638,12 @@ class ProcessCameraProviderHostApi { } } - Future bindToLifecycle(int arg_identifier, - int arg_cameraSelectorIdentifier, List arg_useCaseIds) async { + Future bindToLifecycle(int arg_identifier, int arg_cameraSelectorIdentifier, List arg_useCaseIds) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', - codec, + 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_cameraSelectorIdentifier, - arg_useCaseIds - ]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_cameraSelectorIdentifier, arg_useCaseIds]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -647,8 +670,7 @@ class ProcessCameraProviderHostApi { 'dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_useCaseIdentifier]) - as List?; + await channel.send([arg_identifier, arg_useCaseIdentifier]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -674,8 +696,8 @@ class ProcessCameraProviderHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_useCaseIds]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_useCaseIds]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -720,8 +742,7 @@ abstract class ProcessCameraProviderFlutterApi { void create(int identifier); - static void setup(ProcessCameraProviderFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(ProcessCameraProviderFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create', codec, @@ -731,7 +752,7 @@ abstract class ProcessCameraProviderFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -824,7 +845,7 @@ abstract class CameraFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -852,7 +873,7 @@ class _SystemServicesHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -870,11 +891,9 @@ class SystemServicesHostApi { static const MessageCodec codec = _SystemServicesHostApiCodec(); - Future requestCameraPermissions( - bool arg_enableAudio) async { + Future requestCameraPermissions(bool arg_enableAudio) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', - codec, + 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_enableAudio]) as List?; @@ -927,8 +946,7 @@ abstract class SystemServicesFlutterApi { void onCameraError(String errorDescription); - static void setup(SystemServicesFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(SystemServicesFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError', codec, @@ -938,7 +956,7 @@ abstract class SystemServicesFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError was null.'); + 'Argument for dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError was null.'); final List args = (message as List?)!; final String? arg_errorDescription = (args[0] as String?); assert(arg_errorDescription != null, @@ -961,15 +979,12 @@ class DeviceOrientationManagerHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future startListeningForDeviceOrientationChange( - bool arg_isFrontFacing, int arg_sensorOrientation) async { + Future startListeningForDeviceOrientationChange(bool arg_isFrontFacing, int arg_sensorOrientation) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', - codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_isFrontFacing, arg_sensorOrientation]) - as List?; + await channel.send([arg_isFrontFacing, arg_sensorOrientation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -988,10 +1003,10 @@ class DeviceOrientationManagerHostApi { Future stopListeningForDeviceOrientationChange() async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', - codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; + final List? replyList = + await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1010,10 +1025,10 @@ class DeviceOrientationManagerHostApi { Future getDefaultDisplayRotation() async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', - codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; + final List? replyList = + await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1041,19 +1056,17 @@ abstract class DeviceOrientationManagerFlutterApi { void onDeviceOrientationChanged(String orientation); - static void setup(DeviceOrientationManagerFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(DeviceOrientationManagerFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged', - codec, + 'dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); + 'Argument for dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); final List args = (message as List?)!; final String? arg_orientation = (args[0] as String?); assert(arg_orientation != null, @@ -1081,7 +1094,7 @@ class _PreviewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1099,14 +1112,12 @@ class PreviewHostApi { static const MessageCodec codec = _PreviewHostApiCodec(); - Future create(int arg_identifier, int? arg_rotation, - int? arg_resolutionSelectorId) async { + Future create(int arg_identifier, int? arg_rotation, int? arg_resolutionSelectorId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PreviewHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send( - [arg_identifier, arg_rotation, arg_resolutionSelectorId]) - as List?; + final List? replyList = + await channel.send([arg_identifier, arg_rotation, arg_resolutionSelectorId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1154,7 +1165,8 @@ class PreviewHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; + final List? replyList = + await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1202,8 +1214,8 @@ class PreviewHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PreviewHostApi.setTargetRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_rotation]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_rotation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1289,8 +1301,8 @@ class VideoCaptureHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_rotation]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_rotation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1313,8 +1325,7 @@ abstract class VideoCaptureFlutterApi { void create(int identifier); - static void setup(VideoCaptureFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(VideoCaptureFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.VideoCaptureFlutterApi.create', codec, @@ -1324,7 +1335,7 @@ abstract class VideoCaptureFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.VideoCaptureFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1347,17 +1358,12 @@ class RecorderHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int? arg_aspectRatio, - int? arg_bitRate, int? arg_qualitySelectorId) async { + Future create(int arg_identifier, int? arg_aspectRatio, int? arg_bitRate, int? arg_qualitySelectorId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecorderHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_aspectRatio, - arg_bitRate, - arg_qualitySelectorId - ]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_aspectRatio, arg_bitRate, arg_qualitySelectorId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1403,8 +1409,7 @@ class RecorderHostApi { Future getTargetVideoEncodingBitRate(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', - codec, + 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -1433,8 +1438,8 @@ class RecorderHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecorderHostApi.prepareRecording', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_path]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_path]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1462,8 +1467,7 @@ abstract class RecorderFlutterApi { void create(int identifier, int? aspectRatio, int? bitRate); - static void setup(RecorderFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(RecorderFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecorderFlutterApi.create', codec, @@ -1473,7 +1477,7 @@ abstract class RecorderFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.RecorderFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1531,8 +1535,7 @@ abstract class PendingRecordingFlutterApi { void create(int identifier); - static void setup(PendingRecordingFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(PendingRecordingFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PendingRecordingFlutterApi.create', codec, @@ -1542,7 +1545,7 @@ abstract class PendingRecordingFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PendingRecordingFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.PendingRecordingFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1659,8 +1662,7 @@ abstract class RecordingFlutterApi { void create(int identifier); - static void setup(RecordingFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(RecordingFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecordingFlutterApi.create', codec, @@ -1670,7 +1672,7 @@ abstract class RecordingFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.RecordingFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1693,17 +1695,12 @@ class ImageCaptureHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int? arg_targetRotation, - int? arg_flashMode, int? arg_resolutionSelectorId) async { + Future create(int arg_identifier, int? arg_targetRotation, int? arg_flashMode, int? arg_resolutionSelectorId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageCaptureHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_targetRotation, - arg_flashMode, - arg_resolutionSelectorId - ]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_targetRotation, arg_flashMode, arg_resolutionSelectorId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1724,8 +1721,8 @@ class ImageCaptureHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_flashMode]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_flashMode]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1773,8 +1770,8 @@ class ImageCaptureHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_rotation]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_rotation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1807,7 +1804,7 @@ class _ResolutionStrategyHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1825,14 +1822,12 @@ class ResolutionStrategyHostApi { static const MessageCodec codec = _ResolutionStrategyHostApiCodec(); - Future create(int arg_identifier, ResolutionInfo? arg_boundSize, - int? arg_fallbackRule) async { + Future create(int arg_identifier, ResolutionInfo? arg_boundSize, int? arg_fallbackRule) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ResolutionStrategyHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_boundSize, arg_fallbackRule]) - as List?; + final List? replyList = + await channel.send([arg_identifier, arg_boundSize, arg_fallbackRule]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1860,16 +1855,12 @@ class ResolutionSelectorHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int? arg_resolutionStrategyIdentifier, - int? arg_aspectRatioStrategyIdentifier) async { + Future create(int arg_identifier, int? arg_resolutionStrategyIdentifier, int? arg_aspectRatioStrategyIdentifier) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ResolutionSelectorHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_resolutionStrategyIdentifier, - arg_aspectRatioStrategyIdentifier - ]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_resolutionStrategyIdentifier, arg_aspectRatioStrategyIdentifier]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1897,16 +1888,12 @@ class AspectRatioStrategyHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int arg_preferredAspectRatio, - int arg_fallbackRule) async { + Future create(int arg_identifier, int arg_preferredAspectRatio, int arg_fallbackRule) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.AspectRatioStrategyHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_preferredAspectRatio, - arg_fallbackRule - ]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_preferredAspectRatio, arg_fallbackRule]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1939,7 +1926,7 @@ class _CameraStateFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return CameraStateTypeData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1952,8 +1939,7 @@ abstract class CameraStateFlutterApi { void create(int identifier, CameraStateTypeData type, int? errorIdentifier); - static void setup(CameraStateFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(CameraStateFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraStateFlutterApi.create', codec, @@ -1963,13 +1949,12 @@ abstract class CameraStateFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null, expected non-null int.'); - final CameraStateTypeData? arg_type = - (args[1] as CameraStateTypeData?); + final CameraStateTypeData? arg_type = (args[1] as CameraStateTypeData?); assert(arg_type != null, 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null, expected non-null CameraStateTypeData.'); final int? arg_errorIdentifier = (args[2] as int?); @@ -1996,7 +1981,7 @@ class _ExposureStateFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ExposureCompensationRange.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2007,13 +1992,9 @@ class _ExposureStateFlutterApiCodec extends StandardMessageCodec { abstract class ExposureStateFlutterApi { static const MessageCodec codec = _ExposureStateFlutterApiCodec(); - void create( - int identifier, - ExposureCompensationRange exposureCompensationRange, - double exposureCompensationStep); + void create(int identifier, ExposureCompensationRange exposureCompensationRange, double exposureCompensationStep); - static void setup(ExposureStateFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(ExposureStateFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ExposureStateFlutterApi.create', codec, @@ -2023,20 +2004,18 @@ abstract class ExposureStateFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null int.'); - final ExposureCompensationRange? arg_exposureCompensationRange = - (args[1] as ExposureCompensationRange?); + final ExposureCompensationRange? arg_exposureCompensationRange = (args[1] as ExposureCompensationRange?); assert(arg_exposureCompensationRange != null, 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null ExposureCompensationRange.'); final double? arg_exposureCompensationStep = (args[2] as double?); assert(arg_exposureCompensationStep != null, 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null double.'); - api.create(arg_identifier!, arg_exposureCompensationRange!, - arg_exposureCompensationStep!); + api.create(arg_identifier!, arg_exposureCompensationRange!, arg_exposureCompensationStep!); return; }); } @@ -2049,8 +2028,7 @@ abstract class ZoomStateFlutterApi { void create(int identifier, double minZoomRatio, double maxZoomRatio); - static void setup(ZoomStateFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(ZoomStateFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ZoomStateFlutterApi.create', codec, @@ -2060,7 +2038,7 @@ abstract class ZoomStateFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ZoomStateFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.ZoomStateFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2089,16 +2067,12 @@ class ImageAnalysisHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int? arg_targetRotation, - int? arg_resolutionSelectorId) async { + Future create(int arg_identifier, int? arg_targetRotation, int? arg_resolutionSelectorId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageAnalysisHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_targetRotation, - arg_resolutionSelectorId - ]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_targetRotation, arg_resolutionSelectorId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2115,14 +2089,12 @@ class ImageAnalysisHostApi { } } - Future setAnalyzer( - int arg_identifier, int arg_analyzerIdentifier) async { + Future setAnalyzer(int arg_identifier, int arg_analyzerIdentifier) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_analyzerIdentifier]) - as List?; + await channel.send([arg_identifier, arg_analyzerIdentifier]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2165,8 +2137,8 @@ class ImageAnalysisHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_rotation]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_rotation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2255,8 +2227,7 @@ abstract class ObserverFlutterApi { void onChanged(int identifier, int valueIdentifier); - static void setup(ObserverFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(ObserverFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ObserverFlutterApi.onChanged', codec, @@ -2266,7 +2237,7 @@ abstract class ObserverFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ObserverFlutterApi.onChanged was null.'); + 'Argument for dev.flutter.pigeon.ObserverFlutterApi.onChanged was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2287,8 +2258,7 @@ abstract class CameraStateErrorFlutterApi { void create(int identifier, int code); - static void setup(CameraStateErrorFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(CameraStateErrorFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraStateErrorFlutterApi.create', codec, @@ -2298,7 +2268,7 @@ abstract class CameraStateErrorFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraStateErrorFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraStateErrorFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2329,7 +2299,7 @@ class _LiveDataHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return LiveDataSupportedTypeData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2352,8 +2322,7 @@ class LiveDataHostApi { 'dev.flutter.pigeon.LiveDataHostApi.observe', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_observerIdentifier]) - as List?; + await channel.send([arg_identifier, arg_observerIdentifier]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2392,13 +2361,12 @@ class LiveDataHostApi { } } - Future getValue( - int arg_identifier, LiveDataSupportedTypeData arg_type) async { + Future getValue(int arg_identifier, LiveDataSupportedTypeData arg_type) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.LiveDataHostApi.getValue', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_type]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_type]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2431,7 +2399,7 @@ class _LiveDataFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return LiveDataSupportedTypeData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2444,8 +2412,7 @@ abstract class LiveDataFlutterApi { void create(int identifier, LiveDataSupportedTypeData type); - static void setup(LiveDataFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(LiveDataFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.LiveDataFlutterApi.create', codec, @@ -2455,13 +2422,12 @@ abstract class LiveDataFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null, expected non-null int.'); - final LiveDataSupportedTypeData? arg_type = - (args[1] as LiveDataSupportedTypeData?); + final LiveDataSupportedTypeData? arg_type = (args[1] as LiveDataSupportedTypeData?); assert(arg_type != null, 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null, expected non-null LiveDataSupportedTypeData.'); api.create(arg_identifier!, arg_type!); @@ -2479,8 +2445,7 @@ abstract class AnalyzerFlutterApi { void analyze(int identifier, int imageProxyIdentifier); - static void setup(AnalyzerFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(AnalyzerFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.AnalyzerFlutterApi.create', codec, @@ -2490,7 +2455,7 @@ abstract class AnalyzerFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2509,7 +2474,7 @@ abstract class AnalyzerFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.analyze was null.'); + 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.analyze was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2590,8 +2555,7 @@ abstract class ImageProxyFlutterApi { void create(int identifier, int format, int height, int width); - static void setup(ImageProxyFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(ImageProxyFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageProxyFlutterApi.create', codec, @@ -2601,7 +2565,7 @@ abstract class ImageProxyFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2628,8 +2592,7 @@ abstract class PlaneProxyFlutterApi { void create(int identifier, Uint8List buffer, int pixelStride, int rowStride); - static void setup(PlaneProxyFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(PlaneProxyFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PlaneProxyFlutterApi.create', codec, @@ -2639,7 +2602,7 @@ abstract class PlaneProxyFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2653,8 +2616,7 @@ abstract class PlaneProxyFlutterApi { final int? arg_rowStride = (args[3] as int?); assert(arg_rowStride != null, 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null, expected non-null int.'); - api.create( - arg_identifier!, arg_buffer!, arg_pixelStride!, arg_rowStride!); + api.create(arg_identifier!, arg_buffer!, arg_pixelStride!, arg_rowStride!); return; }); } @@ -2680,9 +2642,9 @@ class _QualitySelectorHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); - case 129: + case 129: return VideoQualityData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2700,18 +2662,12 @@ class QualitySelectorHostApi { static const MessageCodec codec = _QualitySelectorHostApiCodec(); - Future create( - int arg_identifier, - List arg_videoQualityDataList, - int? arg_fallbackStrategyId) async { + Future create(int arg_identifier, List arg_videoQualityDataList, int? arg_fallbackStrategyId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.QualitySelectorHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_videoQualityDataList, - arg_fallbackStrategyId - ]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_videoQualityDataList, arg_fallbackStrategyId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2728,13 +2684,12 @@ class QualitySelectorHostApi { } } - Future getResolution( - int arg_cameraInfoId, VideoQuality arg_quality) async { + Future getResolution(int arg_cameraInfoId, VideoQuality arg_quality) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.QualitySelectorHostApi.getResolution', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_cameraInfoId, arg_quality.index]) as List?; + final List? replyList = + await channel.send([arg_cameraInfoId, arg_quality.index]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2767,16 +2722,12 @@ class FallbackStrategyHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, VideoQuality arg_quality, - VideoResolutionFallbackRule arg_fallbackRule) async { + Future create(int arg_identifier, VideoQuality arg_quality, VideoResolutionFallbackRule arg_fallbackRule) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FallbackStrategyHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_quality.index, - arg_fallbackRule.index - ]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_quality.index, arg_fallbackRule.index]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2808,8 +2759,8 @@ class CameraControlHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlHostApi.enableTorch', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_torch]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_torch]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2830,8 +2781,57 @@ class CameraControlHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlHostApi.setZoomRatio', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_ratio]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_ratio]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } + + Future startFocusAndMetering(int arg_identifier, int arg_focusMeteringActionId) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier, arg_focusMeteringActionId]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (replyList[0] as int?)!; + } + } + + Future cancelFocusAndMetering(int arg_identifier) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2847,6 +2847,33 @@ class CameraControlHostApi { return; } } + + Future setExposureCompensationIndex(int arg_identifier, int arg_index) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier, arg_index]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (replyList[0] as int?)!; + } + } } abstract class CameraControlFlutterApi { @@ -2854,8 +2881,7 @@ abstract class CameraControlFlutterApi { void create(int identifier); - static void setup(CameraControlFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(CameraControlFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlFlutterApi.create', codec, @@ -2865,7 +2891,7 @@ abstract class CameraControlFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraControlFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2877,3 +2903,300 @@ abstract class CameraControlFlutterApi { } } } + +class _FocusMeteringActionHostApiCodec extends StandardMessageCodec { + const _FocusMeteringActionHostApiCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is MeteringPointInfo) { + buffer.putUint8(128); + writeValue(buffer, value.encode()); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return MeteringPointInfo.decode(readValue(buffer)!); + default: + return super.readValueOfType(type, buffer); + } + } +} + +class FocusMeteringActionHostApi { + /// Constructor for [FocusMeteringActionHostApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + FocusMeteringActionHostApi({BinaryMessenger? binaryMessenger}) + : _binaryMessenger = binaryMessenger; + final BinaryMessenger? _binaryMessenger; + + static const MessageCodec codec = _FocusMeteringActionHostApiCodec(); + + Future create(int arg_identifier, List arg_meteringPointInfos) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.FocusMeteringActionHostApi.create', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier, arg_meteringPointInfos]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } +} + +abstract class FocusMeteringActionFlutterApi { + static const MessageCodec codec = StandardMessageCodec(); + + void create(int identifier); + + static void setup(FocusMeteringActionFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.FocusMeteringActionFlutterApi.create', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.FocusMeteringActionFlutterApi.create was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.FocusMeteringActionFlutterApi.create was null, expected non-null int.'); + api.create(arg_identifier!); + return; + }); + } + } + } +} + +class FocusMeteringResultHostApi { + /// Constructor for [FocusMeteringResultHostApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + FocusMeteringResultHostApi({BinaryMessenger? binaryMessenger}) + : _binaryMessenger = binaryMessenger; + final BinaryMessenger? _binaryMessenger; + + static const MessageCodec codec = StandardMessageCodec(); + + Future isFocusSuccessful(int arg_identifier) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (replyList[0] as bool?)!; + } + } +} + +abstract class FocusMeteringResultFlutterApi { + static const MessageCodec codec = StandardMessageCodec(); + + void create(int identifier); + + static void setup(FocusMeteringResultFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.FocusMeteringResultFlutterApi.create', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.FocusMeteringResultFlutterApi.create was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.FocusMeteringResultFlutterApi.create was null, expected non-null int.'); + api.create(arg_identifier!); + return; + }); + } + } + } +} + +class MeteringPointHostApi { + /// Constructor for [MeteringPointHostApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + MeteringPointHostApi({BinaryMessenger? binaryMessenger}) + : _binaryMessenger = binaryMessenger; + final BinaryMessenger? _binaryMessenger; + + static const MessageCodec codec = StandardMessageCodec(); + + Future create(int arg_identifier, double arg_x, double arg_y, double? arg_size) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.MeteringPointHostApi.create', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier, arg_x, arg_y, arg_size]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } + + Future getDefaultPointSize() async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send(null) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (replyList[0] as double?)!; + } + } +} + +class DisplayOrientedMeteringPointFactoryHostApi { + /// Constructor for [DisplayOrientedMeteringPointFactoryHostApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + DisplayOrientedMeteringPointFactoryHostApi({BinaryMessenger? binaryMessenger}) + : _binaryMessenger = binaryMessenger; + final BinaryMessenger? _binaryMessenger; + + static const MessageCodec codec = StandardMessageCodec(); + + Future create(int arg_identifier, int arg_cameraInfoId, int arg_width, int arg_height) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier, arg_cameraInfoId, arg_width, arg_height]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } + + Future createPoint(int arg_x, int arg_y, int? arg_size) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_x, arg_y, arg_size]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (replyList[0] as int?)!; + } + } + + Future getDefaultPointSize() async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send(null) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (replyList[0] as int?)!; + } + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart index 854b59406c7..d61fcaca5cf 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -18,8 +18,8 @@ class FocusMeteringAction extends JavaObject { FocusMeteringAction({ BinaryMessenger? binaryMessenger, InstanceManager? instanceManager, - required MeteringPoint meteringPoint, - int? meteringMode, + required List<(MeteringPoint meteringPoint, int? meteringMode)> + meteringPointInfos, }) : super.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager, @@ -27,7 +27,7 @@ class FocusMeteringAction extends JavaObject { _api = _FocusMeteringActionHostApiImpl( binaryMessenger: binaryMessenger, instanceManager: instanceManager); AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - _api.createFromInstance(this, meteringPoint, meteringMode); + _api.createFromInstance(this, meteringPointInfos); } /// Creates a [FocusMeteringAction] that is not automatically attached to a @@ -58,12 +58,6 @@ class FocusMeteringAction extends JavaObject { /// Flag for metering mode that indicates the AWB (Auto White Balance) region /// is enabled. static const int flagAwb = 4; - - /// something - Future addPoint( - MeteringPoint meteringPoint, int? meteringMode) { - return _api.addPointFromInstance(this, meteringPoint, meteringMode); - } } /// Host API implementation of [FocusMeteringAction]. @@ -92,28 +86,28 @@ class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { /// Creates an [FocusMeteringAction] instance with the flash mode and target resolution /// if specified. - void createFromInstance(FocusMeteringAction instance, - MeteringPoint meteringPoint, int? meteringMode) { + void createFromInstance( + FocusMeteringAction instance, + List<(MeteringPoint meteringPoint, int? meteringMode)> + meteringPointInfos) { final int identifier = instanceManager.addDartCreatedInstance(instance, onCopy: (FocusMeteringAction original) { return FocusMeteringAction.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager); }); - create(identifier, instanceManager.getIdentifier(meteringPoint)!, - meteringMode); - } - /// something - Future addPointFromInstance( - FocusMeteringAction instance, + final List meteringPointInfosWithIds = + []; + for (final ( MeteringPoint meteringPoint, - int? meteringMode) async { - final int identifier = instanceManager.getIdentifier(instance)!; - final int meteringPointId = instanceManager.getIdentifier(meteringPoint)!; - final int focusMeteringResultId = - await addPoint(identifier, meteringPointId, meteringMode); - return instanceManager.getInstanceWithWeakReference( - focusMeteringResultId); + int? meteringMode + ) meteringPointInfo in meteringPointInfos) { + meteringPointInfosWithIds.add(MeteringPointInfo( + meteringPointId: instanceManager.getIdentifier(meteringPointInfo.$1)!, + meteringMode: meteringPointInfo.$2)); + } + + create(identifier, meteringPointInfosWithIds); } } diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 90b75bd203c..abc2581b9f6 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -126,6 +126,22 @@ enum VideoResolutionFallbackRule { lowerQualityThan, } +/// Convenience class for building [FocusMeteringAction] with multiple metering +/// points. +class MeteringPointInfo { + MeteringPointInfo({ + required this.meteringPointId, + required this.meteringMode, + }); + + /// Instance manager ID corresponding to [MeteringPoint] that relates to this + /// info. + int meteringPointId; + + /// Metering mode represented by one of the [FocusMeteringAction] constants. + int? meteringMode; +} + @HostApi(dartHostTestHandler: 'TestInstanceManagerHostApi') abstract class InstanceManagerHostApi { /// Clear the native `InstanceManager`. @@ -462,9 +478,7 @@ abstract class CameraControlFlutterApi { @HostApi(dartHostTestHandler: 'TestFocusMeteringActionHostApi') abstract class FocusMeteringActionHostApi { - void create(int identifier, int meteringPointId, int? meteringMode); - - int addPoint(int identifier, int meteringPointId, int? meteringMode); + void create(int identifier, List meteringPointInfos); } @FlutterApi() diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index 35d9d333c0c..5490793db61 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -14,8 +14,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:camera_android_camerax/src/camerax_library.g.dart'; abstract class TestInstanceManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Clear the native `InstanceManager`. @@ -23,19 +22,15 @@ abstract class TestInstanceManagerHostApi { /// This is typically only used after a hot restart. void clear(); - static void setup(TestInstanceManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestInstanceManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { // ignore message api.clear(); return []; @@ -46,27 +41,22 @@ abstract class TestInstanceManagerHostApi { } abstract class TestJavaObjectHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void dispose(int identifier); - static void setup(TestJavaObjectHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaObjectHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaObjectHostApi.dispose', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -80,8 +70,7 @@ abstract class TestJavaObjectHostApi { } abstract class TestCameraInfoHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); int getSensorRotationDegrees(int identifier); @@ -92,22 +81,17 @@ abstract class TestCameraInfoHostApi { int getZoomState(int identifier); - static void setup(TestCameraInfoHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestCameraInfoHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees', - codec, + 'dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -122,14 +106,11 @@ abstract class TestCameraInfoHostApi { 'dev.flutter.pigeon.CameraInfoHostApi.getCameraState', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getCameraState was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getCameraState was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -144,14 +125,11 @@ abstract class TestCameraInfoHostApi { 'dev.flutter.pigeon.CameraInfoHostApi.getExposureState', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getExposureState was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getExposureState was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -166,14 +144,11 @@ abstract class TestCameraInfoHostApi { 'dev.flutter.pigeon.CameraInfoHostApi.getZoomState', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getZoomState was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getZoomState was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -187,29 +162,24 @@ abstract class TestCameraInfoHostApi { } abstract class TestCameraSelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier, int? lensFacing); List filter(int identifier, List cameraInfoIds); - static void setup(TestCameraSelectorHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestCameraSelectorHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraSelectorHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -225,24 +195,19 @@ abstract class TestCameraSelectorHostApi { 'dev.flutter.pigeon.CameraSelectorHostApi.filter', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null.'); + 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null, expected non-null int.'); - final List? arg_cameraInfoIds = - (args[1] as List?)?.cast(); + final List? arg_cameraInfoIds = (args[1] as List?)?.cast(); assert(arg_cameraInfoIds != null, 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null, expected non-null List.'); - final List output = - api.filter(arg_identifier!, arg_cameraInfoIds!); + final List output = api.filter(arg_identifier!, arg_cameraInfoIds!); return [output]; }); } @@ -251,16 +216,14 @@ abstract class TestCameraSelectorHostApi { } abstract class TestProcessCameraProviderHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); Future getInstance(); List getAvailableCameraInfos(int identifier); - int bindToLifecycle( - int identifier, int cameraSelectorIdentifier, List useCaseIds); + int bindToLifecycle(int identifier, int cameraSelectorIdentifier, List useCaseIds); bool isBound(int identifier, int useCaseIdentifier); @@ -268,19 +231,15 @@ abstract class TestProcessCameraProviderHostApi { void unbindAll(int identifier); - static void setup(TestProcessCameraProviderHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestProcessCameraProviderHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { // ignore message final int output = await api.getInstance(); return [output]; @@ -289,42 +248,33 @@ abstract class TestProcessCameraProviderHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', - codec, + 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null, expected non-null int.'); - final List output = - api.getAvailableCameraInfos(arg_identifier!); + final List output = api.getAvailableCameraInfos(arg_identifier!); return [output]; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', - codec, + 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -332,12 +282,10 @@ abstract class TestProcessCameraProviderHostApi { final int? arg_cameraSelectorIdentifier = (args[1] as int?); assert(arg_cameraSelectorIdentifier != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null, expected non-null int.'); - final List? arg_useCaseIds = - (args[2] as List?)?.cast(); + final List? arg_useCaseIds = (args[2] as List?)?.cast(); assert(arg_useCaseIds != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null, expected non-null List.'); - final int output = api.bindToLifecycle( - arg_identifier!, arg_cameraSelectorIdentifier!, arg_useCaseIds!); + final int output = api.bindToLifecycle(arg_identifier!, arg_cameraSelectorIdentifier!, arg_useCaseIds!); return [output]; }); } @@ -347,14 +295,11 @@ abstract class TestProcessCameraProviderHostApi { 'dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -362,8 +307,7 @@ abstract class TestProcessCameraProviderHostApi { final int? arg_useCaseIdentifier = (args[1] as int?); assert(arg_useCaseIdentifier != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null, expected non-null int.'); - final bool output = - api.isBound(arg_identifier!, arg_useCaseIdentifier!); + final bool output = api.isBound(arg_identifier!, arg_useCaseIdentifier!); return [output]; }); } @@ -373,20 +317,16 @@ abstract class TestProcessCameraProviderHostApi { 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null, expected non-null int.'); - final List? arg_useCaseIds = - (args[1] as List?)?.cast(); + final List? arg_useCaseIds = (args[1] as List?)?.cast(); assert(arg_useCaseIds != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null, expected non-null List.'); api.unbind(arg_identifier!, arg_useCaseIds!); @@ -399,14 +339,11 @@ abstract class TestProcessCameraProviderHostApi { 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -420,29 +357,24 @@ abstract class TestProcessCameraProviderHostApi { } abstract class TestCameraHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); int getCameraInfo(int identifier); int getCameraControl(int identifier); - static void setup(TestCameraHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestCameraHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraHostApi.getCameraInfo', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraInfo was null.'); + 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraInfo was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -457,14 +389,11 @@ abstract class TestCameraHostApi { 'dev.flutter.pigeon.CameraHostApi.getCameraControl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraControl was null.'); + 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraControl was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -492,7 +421,7 @@ class _TestSystemServicesHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -501,37 +430,29 @@ class _TestSystemServicesHostApiCodec extends StandardMessageCodec { } abstract class TestSystemServicesHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestSystemServicesHostApiCodec(); - Future requestCameraPermissions( - bool enableAudio); + Future requestCameraPermissions(bool enableAudio); String getTempFilePath(String prefix, String suffix); - static void setup(TestSystemServicesHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestSystemServicesHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', - codec, + 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions was null.'); + 'Argument for dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions was null.'); final List args = (message as List?)!; final bool? arg_enableAudio = (args[0] as bool?); assert(arg_enableAudio != null, 'Argument for dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions was null, expected non-null bool.'); - final CameraPermissionsErrorData? output = - await api.requestCameraPermissions(arg_enableAudio!); + final CameraPermissionsErrorData? output = await api.requestCameraPermissions(arg_enableAudio!); return [output]; }); } @@ -541,14 +462,11 @@ abstract class TestSystemServicesHostApi { 'dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath was null.'); + 'Argument for dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath was null.'); final List args = (message as List?)!; final String? arg_prefix = (args[0] as String?); assert(arg_prefix != null, @@ -565,33 +483,26 @@ abstract class TestSystemServicesHostApi { } abstract class TestDeviceOrientationManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void startListeningForDeviceOrientationChange( - bool isFrontFacing, int sensorOrientation); + void startListeningForDeviceOrientationChange(bool isFrontFacing, int sensorOrientation); void stopListeningForDeviceOrientationChange(); int getDefaultDisplayRotation(); - static void setup(TestDeviceOrientationManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestDeviceOrientationManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', - codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null.'); + 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null.'); final List args = (message as List?)!; final bool? arg_isFrontFacing = (args[0] as bool?); assert(arg_isFrontFacing != null, @@ -599,24 +510,19 @@ abstract class TestDeviceOrientationManagerHostApi { final int? arg_sensorOrientation = (args[1] as int?); assert(arg_sensorOrientation != null, 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null, expected non-null int.'); - api.startListeningForDeviceOrientationChange( - arg_isFrontFacing!, arg_sensorOrientation!); + api.startListeningForDeviceOrientationChange(arg_isFrontFacing!, arg_sensorOrientation!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', - codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { // ignore message api.stopListeningForDeviceOrientationChange(); return []; @@ -625,16 +531,12 @@ abstract class TestDeviceOrientationManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', - codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { // ignore message final int output = api.getDefaultDisplayRotation(); return [output]; @@ -659,7 +561,7 @@ class _TestPreviewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -668,8 +570,7 @@ class _TestPreviewHostApiCodec extends StandardMessageCodec { } abstract class TestPreviewHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestPreviewHostApiCodec(); void create(int identifier, int? rotation, int? resolutionSelectorId); @@ -682,21 +583,17 @@ abstract class TestPreviewHostApi { void setTargetRotation(int identifier, int rotation); - static void setup(TestPreviewHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestPreviewHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PreviewHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.PreviewHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -713,14 +610,11 @@ abstract class TestPreviewHostApi { 'dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider was null.'); + 'Argument for dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -732,16 +626,12 @@ abstract class TestPreviewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture', - codec, + 'dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { // ignore message api.releaseFlutterSurfaceTexture(); return []; @@ -753,14 +643,11 @@ abstract class TestPreviewHostApi { 'dev.flutter.pigeon.PreviewHostApi.getResolutionInfo', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.getResolutionInfo was null.'); + 'Argument for dev.flutter.pigeon.PreviewHostApi.getResolutionInfo was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -775,14 +662,11 @@ abstract class TestPreviewHostApi { 'dev.flutter.pigeon.PreviewHostApi.setTargetRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setTargetRotation was null.'); + 'Argument for dev.flutter.pigeon.PreviewHostApi.setTargetRotation was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -799,8 +683,7 @@ abstract class TestPreviewHostApi { } abstract class TestVideoCaptureHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); int withOutput(int videoOutputId); @@ -809,21 +692,17 @@ abstract class TestVideoCaptureHostApi { void setTargetRotation(int identifier, int rotation); - static void setup(TestVideoCaptureHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestVideoCaptureHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.VideoCaptureHostApi.withOutput', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.withOutput was null.'); + 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.withOutput was null.'); final List args = (message as List?)!; final int? arg_videoOutputId = (args[0] as int?); assert(arg_videoOutputId != null, @@ -838,14 +717,11 @@ abstract class TestVideoCaptureHostApi { 'dev.flutter.pigeon.VideoCaptureHostApi.getOutput', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.getOutput was null.'); + 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.getOutput was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -860,14 +736,11 @@ abstract class TestVideoCaptureHostApi { 'dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation was null.'); + 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -884,12 +757,10 @@ abstract class TestVideoCaptureHostApi { } abstract class TestRecorderHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void create( - int identifier, int? aspectRatio, int? bitRate, int? qualitySelectorId); + void create(int identifier, int? aspectRatio, int? bitRate, int? qualitySelectorId); int getAspectRatio(int identifier); @@ -897,21 +768,17 @@ abstract class TestRecorderHostApi { int prepareRecording(int identifier, String path); - static void setup(TestRecorderHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestRecorderHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecorderHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.RecorderHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -919,8 +786,7 @@ abstract class TestRecorderHostApi { final int? arg_aspectRatio = (args[1] as int?); final int? arg_bitRate = (args[2] as int?); final int? arg_qualitySelectorId = (args[3] as int?); - api.create(arg_identifier!, arg_aspectRatio, arg_bitRate, - arg_qualitySelectorId); + api.create(arg_identifier!, arg_aspectRatio, arg_bitRate, arg_qualitySelectorId); return []; }); } @@ -930,14 +796,11 @@ abstract class TestRecorderHostApi { 'dev.flutter.pigeon.RecorderHostApi.getAspectRatio', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.getAspectRatio was null.'); + 'Argument for dev.flutter.pigeon.RecorderHostApi.getAspectRatio was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -949,18 +812,14 @@ abstract class TestRecorderHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', - codec, + 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate was null.'); + 'Argument for dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -975,14 +834,11 @@ abstract class TestRecorderHostApi { 'dev.flutter.pigeon.RecorderHostApi.prepareRecording', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.prepareRecording was null.'); + 'Argument for dev.flutter.pigeon.RecorderHostApi.prepareRecording was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -999,27 +855,22 @@ abstract class TestRecorderHostApi { } abstract class TestPendingRecordingHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); int start(int identifier); - static void setup(TestPendingRecordingHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestPendingRecordingHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PendingRecordingHostApi.start', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PendingRecordingHostApi.start was null.'); + 'Argument for dev.flutter.pigeon.PendingRecordingHostApi.start was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1033,8 +884,7 @@ abstract class TestPendingRecordingHostApi { } abstract class TestRecordingHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void close(int identifier); @@ -1045,21 +895,17 @@ abstract class TestRecordingHostApi { void stop(int identifier); - static void setup(TestRecordingHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestRecordingHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecordingHostApi.close', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.close was null.'); + 'Argument for dev.flutter.pigeon.RecordingHostApi.close was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1074,14 +920,11 @@ abstract class TestRecordingHostApi { 'dev.flutter.pigeon.RecordingHostApi.pause', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.pause was null.'); + 'Argument for dev.flutter.pigeon.RecordingHostApi.pause was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1096,14 +939,11 @@ abstract class TestRecordingHostApi { 'dev.flutter.pigeon.RecordingHostApi.resume', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.resume was null.'); + 'Argument for dev.flutter.pigeon.RecordingHostApi.resume was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1118,14 +958,11 @@ abstract class TestRecordingHostApi { 'dev.flutter.pigeon.RecordingHostApi.stop', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.stop was null.'); + 'Argument for dev.flutter.pigeon.RecordingHostApi.stop was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1139,12 +976,10 @@ abstract class TestRecordingHostApi { } abstract class TestImageCaptureHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void create(int identifier, int? targetRotation, int? flashMode, - int? resolutionSelectorId); + void create(int identifier, int? targetRotation, int? flashMode, int? resolutionSelectorId); void setFlashMode(int identifier, int flashMode); @@ -1152,21 +987,17 @@ abstract class TestImageCaptureHostApi { void setTargetRotation(int identifier, int rotation); - static void setup(TestImageCaptureHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestImageCaptureHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageCaptureHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1174,8 +1005,7 @@ abstract class TestImageCaptureHostApi { final int? arg_targetRotation = (args[1] as int?); final int? arg_flashMode = (args[2] as int?); final int? arg_resolutionSelectorId = (args[3] as int?); - api.create(arg_identifier!, arg_targetRotation, arg_flashMode, - arg_resolutionSelectorId); + api.create(arg_identifier!, arg_targetRotation, arg_flashMode, arg_resolutionSelectorId); return []; }); } @@ -1185,14 +1015,11 @@ abstract class TestImageCaptureHostApi { 'dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode was null.'); + 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1210,14 +1037,11 @@ abstract class TestImageCaptureHostApi { 'dev.flutter.pigeon.ImageCaptureHostApi.takePicture', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.takePicture was null.'); + 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.takePicture was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1232,14 +1056,11 @@ abstract class TestImageCaptureHostApi { 'dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation was null.'); + 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1270,7 +1091,7 @@ class _TestResolutionStrategyHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1279,28 +1100,22 @@ class _TestResolutionStrategyHostApiCodec extends StandardMessageCodec { } abstract class TestResolutionStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = - _TestResolutionStrategyHostApiCodec(); + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = _TestResolutionStrategyHostApiCodec(); void create(int identifier, ResolutionInfo? boundSize, int? fallbackRule); - static void setup(TestResolutionStrategyHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestResolutionStrategyHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ResolutionStrategyHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ResolutionStrategyHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ResolutionStrategyHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1316,36 +1131,29 @@ abstract class TestResolutionStrategyHostApi { } abstract class TestResolutionSelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void create(int identifier, int? resolutionStrategyIdentifier, - int? aspectRatioStrategyIdentifier); + void create(int identifier, int? resolutionStrategyIdentifier, int? aspectRatioStrategyIdentifier); - static void setup(TestResolutionSelectorHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestResolutionSelectorHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ResolutionSelectorHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ResolutionSelectorHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ResolutionSelectorHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ResolutionSelectorHostApi.create was null, expected non-null int.'); final int? arg_resolutionStrategyIdentifier = (args[1] as int?); final int? arg_aspectRatioStrategyIdentifier = (args[2] as int?); - api.create(arg_identifier!, arg_resolutionStrategyIdentifier, - arg_aspectRatioStrategyIdentifier); + api.create(arg_identifier!, arg_resolutionStrategyIdentifier, arg_aspectRatioStrategyIdentifier); return []; }); } @@ -1354,27 +1162,22 @@ abstract class TestResolutionSelectorHostApi { } abstract class TestAspectRatioStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier, int preferredAspectRatio, int fallbackRule); - static void setup(TestAspectRatioStrategyHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestAspectRatioStrategyHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.AspectRatioStrategyHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1385,8 +1188,7 @@ abstract class TestAspectRatioStrategyHostApi { final int? arg_fallbackRule = (args[2] as int?); assert(arg_fallbackRule != null, 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null, expected non-null int.'); - api.create( - arg_identifier!, arg_preferredAspectRatio!, arg_fallbackRule!); + api.create(arg_identifier!, arg_preferredAspectRatio!, arg_fallbackRule!); return []; }); } @@ -1395,8 +1197,7 @@ abstract class TestAspectRatioStrategyHostApi { } abstract class TestImageAnalysisHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier, int? targetRotation, int? resolutionSelectorId); @@ -1407,29 +1208,24 @@ abstract class TestImageAnalysisHostApi { void setTargetRotation(int identifier, int rotation); - static void setup(TestImageAnalysisHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestImageAnalysisHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageAnalysisHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.create was null, expected non-null int.'); final int? arg_targetRotation = (args[1] as int?); final int? arg_resolutionSelectorId = (args[2] as int?); - api.create( - arg_identifier!, arg_targetRotation, arg_resolutionSelectorId); + api.create(arg_identifier!, arg_targetRotation, arg_resolutionSelectorId); return []; }); } @@ -1439,14 +1235,11 @@ abstract class TestImageAnalysisHostApi { 'dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer was null.'); + 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1464,14 +1257,11 @@ abstract class TestImageAnalysisHostApi { 'dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer was null.'); + 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1486,14 +1276,11 @@ abstract class TestImageAnalysisHostApi { 'dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation was null.'); + 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1510,27 +1297,22 @@ abstract class TestImageAnalysisHostApi { } abstract class TestAnalyzerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier); - static void setup(TestAnalyzerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestAnalyzerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.AnalyzerHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.AnalyzerHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1544,27 +1326,22 @@ abstract class TestAnalyzerHostApi { } abstract class TestObserverHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier); - static void setup(TestObserverHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestObserverHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ObserverHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ObserverHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ObserverHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1592,7 +1369,7 @@ class _TestLiveDataHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return LiveDataSupportedTypeData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1601,8 +1378,7 @@ class _TestLiveDataHostApiCodec extends StandardMessageCodec { } abstract class TestLiveDataHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestLiveDataHostApiCodec(); void observe(int identifier, int observerIdentifier); @@ -1611,21 +1387,17 @@ abstract class TestLiveDataHostApi { int? getValue(int identifier, LiveDataSupportedTypeData type); - static void setup(TestLiveDataHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestLiveDataHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.LiveDataHostApi.observe', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.observe was null.'); + 'Argument for dev.flutter.pigeon.LiveDataHostApi.observe was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1643,14 +1415,11 @@ abstract class TestLiveDataHostApi { 'dev.flutter.pigeon.LiveDataHostApi.removeObservers', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.removeObservers was null.'); + 'Argument for dev.flutter.pigeon.LiveDataHostApi.removeObservers was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1665,20 +1434,16 @@ abstract class TestLiveDataHostApi { 'dev.flutter.pigeon.LiveDataHostApi.getValue', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null.'); + 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null, expected non-null int.'); - final LiveDataSupportedTypeData? arg_type = - (args[1] as LiveDataSupportedTypeData?); + final LiveDataSupportedTypeData? arg_type = (args[1] as LiveDataSupportedTypeData?); assert(arg_type != null, 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null, expected non-null LiveDataSupportedTypeData.'); final int? output = api.getValue(arg_identifier!, arg_type!); @@ -1690,29 +1455,24 @@ abstract class TestLiveDataHostApi { } abstract class TestImageProxyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); List getPlanes(int identifier); void close(int identifier); - static void setup(TestImageProxyHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestImageProxyHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageProxyHostApi.getPlanes', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyHostApi.getPlanes was null.'); + 'Argument for dev.flutter.pigeon.ImageProxyHostApi.getPlanes was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1727,14 +1487,11 @@ abstract class TestImageProxyHostApi { 'dev.flutter.pigeon.ImageProxyHostApi.close', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyHostApi.close was null.'); + 'Argument for dev.flutter.pigeon.ImageProxyHostApi.close was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1765,9 +1522,9 @@ class _TestQualitySelectorHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); - case 129: + case 129: return VideoQualityData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1776,41 +1533,33 @@ class _TestQualitySelectorHostApiCodec extends StandardMessageCodec { } abstract class TestQualitySelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestQualitySelectorHostApiCodec(); - void create(int identifier, List videoQualityDataList, - int? fallbackStrategyId); + void create(int identifier, List videoQualityDataList, int? fallbackStrategyId); ResolutionInfo getResolution(int cameraInfoId, VideoQuality quality); - static void setup(TestQualitySelectorHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestQualitySelectorHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.QualitySelectorHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null, expected non-null int.'); - final List? arg_videoQualityDataList = - (args[1] as List?)?.cast(); + final List? arg_videoQualityDataList = (args[1] as List?)?.cast(); assert(arg_videoQualityDataList != null, 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null, expected non-null List.'); final int? arg_fallbackStrategyId = (args[2] as int?); - api.create(arg_identifier!, arg_videoQualityDataList!, - arg_fallbackStrategyId); + api.create(arg_identifier!, arg_videoQualityDataList!, arg_fallbackStrategyId); return []; }); } @@ -1820,24 +1569,19 @@ abstract class TestQualitySelectorHostApi { 'dev.flutter.pigeon.QualitySelectorHostApi.getResolution', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null.'); + 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null.'); final List args = (message as List?)!; final int? arg_cameraInfoId = (args[0] as int?); assert(arg_cameraInfoId != null, 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null, expected non-null int.'); - final VideoQuality? arg_quality = - args[1] == null ? null : VideoQuality.values[args[1] as int]; + final VideoQuality? arg_quality = args[1] == null ? null : VideoQuality.values[args[1] as int]; assert(arg_quality != null, 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null, expected non-null VideoQuality.'); - final ResolutionInfo output = - api.getResolution(arg_cameraInfoId!, arg_quality!); + final ResolutionInfo output = api.getResolution(arg_cameraInfoId!, arg_quality!); return [output]; }); } @@ -1846,39 +1590,30 @@ abstract class TestQualitySelectorHostApi { } abstract class TestFallbackStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void create(int identifier, VideoQuality quality, - VideoResolutionFallbackRule fallbackRule); + void create(int identifier, VideoQuality quality, VideoResolutionFallbackRule fallbackRule); - static void setup(TestFallbackStrategyHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestFallbackStrategyHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FallbackStrategyHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null int.'); - final VideoQuality? arg_quality = - args[1] == null ? null : VideoQuality.values[args[1] as int]; + final VideoQuality? arg_quality = args[1] == null ? null : VideoQuality.values[args[1] as int]; assert(arg_quality != null, 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null VideoQuality.'); - final VideoResolutionFallbackRule? arg_fallbackRule = args[2] == null - ? null - : VideoResolutionFallbackRule.values[args[2] as int]; + final VideoResolutionFallbackRule? arg_fallbackRule = args[2] == null ? null : VideoResolutionFallbackRule.values[args[2] as int]; assert(arg_fallbackRule != null, 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null VideoResolutionFallbackRule.'); api.create(arg_identifier!, arg_quality!, arg_fallbackRule!); @@ -1890,29 +1625,30 @@ abstract class TestFallbackStrategyHostApi { } abstract class TestCameraControlHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); Future enableTorch(int identifier, bool torch); Future setZoomRatio(int identifier, double ratio); - static void setup(TestCameraControlHostApi? api, - {BinaryMessenger? binaryMessenger}) { + Future startFocusAndMetering(int identifier, int focusMeteringActionId); + + Future cancelFocusAndMetering(int identifier); + + Future setExposureCompensationIndex(int identifier, int index); + + static void setup(TestCameraControlHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlHostApi.enableTorch', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.enableTorch was null.'); + 'Argument for dev.flutter.pigeon.CameraControlHostApi.enableTorch was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1930,14 +1666,11 @@ abstract class TestCameraControlHostApi { 'dev.flutter.pigeon.CameraControlHostApi.setZoomRatio', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setZoomRatio was null.'); + 'Argument for dev.flutter.pigeon.CameraControlHostApi.setZoomRatio was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1950,5 +1683,254 @@ abstract class TestCameraControlHostApi { }); } } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null, expected non-null int.'); + final int? arg_focusMeteringActionId = (args[1] as int?); + assert(arg_focusMeteringActionId != null, + 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null, expected non-null int.'); + final int output = await api.startFocusAndMetering(arg_identifier!, arg_focusMeteringActionId!); + return [output]; + }); + } + } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering was null, expected non-null int.'); + await api.cancelFocusAndMetering(arg_identifier!); + return []; + }); + } + } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null, expected non-null int.'); + final int? arg_index = (args[1] as int?); + assert(arg_index != null, + 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null, expected non-null int.'); + final int output = await api.setExposureCompensationIndex(arg_identifier!, arg_index!); + return [output]; + }); + } + } + } +} + +class _TestFocusMeteringActionHostApiCodec extends StandardMessageCodec { + const _TestFocusMeteringActionHostApiCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is MeteringPointInfo) { + buffer.putUint8(128); + writeValue(buffer, value.encode()); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return MeteringPointInfo.decode(readValue(buffer)!); + default: + return super.readValueOfType(type, buffer); + } + } +} + +abstract class TestFocusMeteringActionHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = _TestFocusMeteringActionHostApiCodec(); + + void create(int identifier, List meteringPointInfos); + + static void setup(TestFocusMeteringActionHostApi? api, {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.FocusMeteringActionHostApi.create', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null, expected non-null int.'); + final List? arg_meteringPointInfos = (args[1] as List?)?.cast(); + assert(arg_meteringPointInfos != null, + 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null, expected non-null List.'); + api.create(arg_identifier!, arg_meteringPointInfos!); + return []; + }); + } + } + } +} + +abstract class TestMeteringPointHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = StandardMessageCodec(); + + void create(int identifier, double x, double y, double? size); + + double getDefaultPointSize(); + + static void setup(TestMeteringPointHostApi? api, {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.MeteringPointHostApi.create', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null, expected non-null int.'); + final double? arg_x = (args[1] as double?); + assert(arg_x != null, + 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null, expected non-null double.'); + final double? arg_y = (args[2] as double?); + assert(arg_y != null, + 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null, expected non-null double.'); + final double? arg_size = (args[3] as double?); + api.create(arg_identifier!, arg_x!, arg_y!, arg_size); + return []; + }); + } + } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + // ignore message + final double output = api.getDefaultPointSize(); + return [output]; + }); + } + } + } +} + +abstract class TestDisplayOrientedMeteringPointFactoryHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = StandardMessageCodec(); + + void create(int identifier, int cameraInfoId, int width, int height); + + int createPoint(int x, int y, int? size); + + int getDefaultPointSize(); + + static void setup(TestDisplayOrientedMeteringPointFactoryHostApi? api, {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create was null, expected non-null int.'); + final int? arg_cameraInfoId = (args[1] as int?); + assert(arg_cameraInfoId != null, + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create was null, expected non-null int.'); + final int? arg_width = (args[2] as int?); + assert(arg_width != null, + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create was null, expected non-null int.'); + final int? arg_height = (args[3] as int?); + assert(arg_height != null, + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create was null, expected non-null int.'); + api.create(arg_identifier!, arg_cameraInfoId!, arg_width!, arg_height!); + return []; + }); + } + } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint was null.'); + final List args = (message as List?)!; + final int? arg_x = (args[0] as int?); + assert(arg_x != null, + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint was null, expected non-null int.'); + final int? arg_y = (args[1] as int?); + assert(arg_y != null, + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint was null, expected non-null int.'); + final int? arg_size = (args[2] as int?); + final int output = api.createPoint(arg_x!, arg_y!, arg_size); + return [output]; + }); + } + } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + // ignore message + final int output = api.getDefaultPointSize(); + return [output]; + }); + } + } } } From d157b4666a4a7ec63d06a2302332386caca003e8 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 3 Jan 2024 11:13:01 -0800 Subject: [PATCH 09/24] Adding tests + docs --- .../camerax/CameraControlHostApiImpl.java | 14 ++ .../plugins/camerax/CameraControlTest.java | 161 +++++++++++++++++- .../camerax/FocusMeteringActionTest.java | 66 +++++++ .../lib/src/camera_control.dart | 18 +- .../lib/src/focus_metering_action.dart | 24 ++- .../android_camera_camerax_test.mocks.dart | 132 ++++++++------ .../test/camera_control_test.dart | 109 ++++++++++++ .../test/camera_control_test.mocks.dart | 43 +++++ .../test/camera_info_test.mocks.dart | 8 - .../test/focus_metering_action_test.dart | 115 +++++++++++++ .../focus_metering_action_test.mocks.dart | 90 ++++++++++ 11 files changed, 707 insertions(+), 73 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java create mode 100644 packages/camera/camera_android_camerax/test/focus_metering_action_test.dart create mode 100644 packages/camera/camera_android_camerax/test/focus_metering_action_test.mocks.dart diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java index d738846638d..25affa54607 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java @@ -77,6 +77,11 @@ public void onFailure(Throwable t) { ContextCompat.getMainExecutor(context)); } + /** + * Starts a focus and metering action configured by the {@code FocusMeteringAction}. + * + * Will trigger an auto focus action and enable auto focus/auto exposure/auto white balance metering regions. + */ public void startFocusAndMetering( @NonNull CameraControl cameraControl, @NonNull FocusMeteringAction focusMeteringAction, @@ -101,6 +106,7 @@ public void onFailure(Throwable t) { ContextCompat.getMainExecutor(context)); } + /** Cancels current {@code FocusMeteringAction} and clears AF/AE/AWB regions. */ public void cancelFocusAndMetering(@NonNull CameraControl cameraControl, @NonNull Result result) { ListenableFuture cancelFocusAndMeteringFuture = cameraControl.cancelFocusAndMetering(); @@ -118,6 +124,14 @@ public void onFailure(Throwable t) { ContextCompat.getMainExecutor(context)); } + /** + * Sets the exposure compensation index for the specified {@CameraControl} instance and returns + * the new target exposure value. + * + * The exposure compensation value to set on the camera which must be within the range of the + * {@code ExposureState#getExposureCompensationRange()} for the current {@code ExposureState} + * for the call to succeed. + */ public void setExposureCompensationIndex(@NonNull CameraControl cameraControl, @NonNull Long index, @NonNull Result result) { ListenableFuture setExposureCompensationIndexFuture = cameraControl.setExposureCompensationIndex(index.intValue()); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index a01e3db8238..e4a3fab2b18 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -66,7 +66,7 @@ public void enableTorch_turnsTorchModeOnAndOffAsExpected() { final ArgumentCaptor> futureCallbackCaptor = ArgumentCaptor.forClass(FutureCallback.class); - // Test turning on torch mode. + // Test successful behavior. @SuppressWarnings("unchecked") final GeneratedCameraXLibrary.Result successfulMockResult = mock(GeneratedCameraXLibrary.Result.class); @@ -81,7 +81,7 @@ public void enableTorch_turnsTorchModeOnAndOffAsExpected() { successfulEnableTorchCallback.onSuccess(mock(Void.class)); verify(successfulMockResult).success(null); - // Test turning off torch mode. + // Test failed behavior. @SuppressWarnings("unchecked") final GeneratedCameraXLibrary.Result failedMockResult = mock(GeneratedCameraXLibrary.Result.class); @@ -148,6 +148,163 @@ public void setZoomRatio_setsZoomAsExpected() { } } + @Test + public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final CameraControlHostApiImpl cameraControlHostApiImpl = + new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); + final Long cameraControlIdentifier = 90L; + final FocusMeteringAction mockAction = mock(FocusMeteringAction.class); + final Long mockActionId = 44L; + final FocusMeteringResult mockResult = mock(FocusMeteringResult.class); + final Long mockResultId = 33L; + + @SuppressWarnings("unchecked") + final ListenableFuture startFocusAndMeteringFuture = mock(ListenableFuture.class); + + testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); + testInstanceManager.addDartCreatedInstance(mockResult, mockResultId); + testInstanceManager.addDartCreatedInstance(mockAction, mockActionId); + + when(cameraControl.startFocusAndMetering(mockAction)).thenReturn(startFocusAndMeteringFuture); + + @SuppressWarnings("unchecked") + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + // Test successful behavior. + @SuppressWarnings("unchecked") + final GeneratedCameraXLibrary.Result successfulMockResult = + mock(GeneratedCameraXLibrary.Result.class); + cameraControlHostApiImpl.startFocusAndMetering( + cameraControlIdentifier, mockActionId, successfulMockResult); + mockedFutures.verify( + () -> Futures.addCallback(eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + successfulFutureCallback.onSuccess(mockResult); + verify(successfulMockResult).success(mockResultId); + + // Test failed behavior. + @SuppressWarnings("unchecked") + final GeneratedCameraXLibrary.Result failedMockResult = + mock(GeneratedCameraXLibrary.Result.class); + final Throwable testThrowable = new Throwable(); + cameraControlHostApiImpl.startFocusAndMetering(cameraControlIdentifier, mockActionId, failedMockResult); + mockedFutures.verify( + () -> Futures.addCallback(eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + FutureCallback failedCallback = futureCallbackCaptor.getValue(); + + failedCallback.onFailure(testThrowable); + verify(failedMockResult).error(testThrowable); + } + } + + @Test + public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final CameraControlHostApiImpl cameraControlHostApiImpl = + new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); + final Long cameraControlIdentifier = 8L; + + @SuppressWarnings("unchecked") + final ListenableFuture cancelFocusAndMeteringFuture = mock(ListenableFuture.class); + + testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); + + when(cameraControl.cancelFocusAndMetering()).thenReturn(cancelFocusAndMeteringFuture); + + @SuppressWarnings("unchecked") + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + // Test successful behavior. + @SuppressWarnings("unchecked") + final GeneratedCameraXLibrary.Result successfulMockResult = + mock(GeneratedCameraXLibrary.Result.class); + cameraControlHostApiImpl.cancelFocusAndMetering( + cameraControlIdentifier, successfulMockResult); + mockedFutures.verify( + () -> Futures.addCallback(eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + successfulCallback.onSuccess(mock(Void.class)); + verify(successfulMockResult).success(null); + + // Test failed behavior. + @SuppressWarnings("unchecked") + final GeneratedCameraXLibrary.Result failedMockResult = + mock(GeneratedCameraXLibrary.Result.class); + final Throwable testThrowable = new Throwable(); + cameraControlHostApiImpl.cancelFocusAndMetering(cameraControlIdentifier, failedMockResult); + mockedFutures.verify( + () -> Futures.addCallback(eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); + + FutureCallback failedCallback = futureCallbackCaptor.getValue(); + + failedCallback.onFailure(testThrowable); + verify(failedMockResult).error(testThrowable); + } + } + + @Test + public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected() { + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final CameraControlHostApiImpl cameraControlHostApiImpl = + new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); + final Long cameraControlIdentifier = 53L; + final Long index = 2L; + + @SuppressWarnings("unchecked") + final ListenableFuture setExposureCompensationIndexFuture = mock(ListenableFuture.class); + + testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); + + when(cameraControl.setExposureCompensationIndex(index.intValue())).thenReturn(setExposureCompensationIndexFuture); + + @SuppressWarnings("unchecked") + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + // Test successful behavior. + @SuppressWarnings("unchecked") + final GeneratedCameraXLibrary.Result successfulMockResult = + mock(GeneratedCameraXLibrary.Result.class); + cameraControlHostApiImpl.setExposureCompensationIndex( + cameraControlIdentifier, index, successfulMockResult); + mockedFutures.verify( + () -> Futures.addCallback(eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + final Integer fakeResult = 4; + + successfulFutureCallback.onSuccess(fakeResult); + verify(successfulMockResult).success(fakeResult); + + // Test failed behavior. + @SuppressWarnings("unchecked") + final GeneratedCameraXLibrary.Result failedMockResult = + mock(GeneratedCameraXLibrary.Result.class); + final Throwable testThrowable = new Throwable(); + cameraControlHostApiImpl.setExposureCompensationIndex(cameraControlIdentifier, index, failedMockResult); + mockedFutures.verify( + () -> Futures.addCallback(eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + FutureCallback failedCallback = futureCallbackCaptor.getValue(); + + failedCallback.onFailure(testThrowable); + verify(failedMockResult).error(testThrowable); + } + } + @Test public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { final CameraControlFlutterApiImpl spyFlutterApi = diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java new file mode 100644 index 00000000000..b680ac217a2 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -0,0 +1,66 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import androidx.camera.core.FocusMeteringAction; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import io.flutter.plugin.common.BinaryMessenger; +import java.util.Objects; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; + +public class FocusMeteringActionTest { + @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); + + @Mock public BinaryMessenger mockBinaryMessenger; + @Mock public FocusMeteringAction focusMeteringAction; + + InstanceManager testInstanceManager; + + @Before + public void setUp() { + testInstanceManager = InstanceManager.create(identifier -> {}); + } + + @After + public void tearDown() { + testInstanceManager.stopFinalizationListener(); + } + + @Test + public void hostApiCreate_createsExpectedFocusMeteringAction() { + // here + } + + @Test + public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { + final FocusMeteringActionFlutterApiImpl spyFlutterApi = + spy(new FocusMeteringActionFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); + + spyFlutterApi.create(focusMeteringAction, reply -> {}); + + final long focusMeteringActionIdentifier = + Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(focusMeteringAction)); + verify(spyFlutterApi).create(eq(focusMeteringActionIdentifier), any()); + } +} \ No newline at end of file diff --git a/packages/camera/camera_android_camerax/lib/src/camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera_control.dart index fb8d31ca13e..2aef6e18c98 100644 --- a/packages/camera/camera_android_camerax/lib/src/camera_control.dart +++ b/packages/camera/camera_android_camerax/lib/src/camera_control.dart @@ -53,18 +53,23 @@ class CameraControl extends JavaObject { /// Starts a focus and metering action configured by the [FocusMeteringAction]. /// - /// will trigger an auto focus action and enable auto focus (AF)/auto exposure - /// (AE)/auto white balance (AWB) metering regions. + /// Will trigger an auto focus action and enable auto focus/auto exposure + /// /auto white balance metering regions. Future startFocusAndMetering( FocusMeteringAction action) { return _api.startFocusAndMeteringFromInstance(this, action); } - /// Cancels current FocusMeteringAction and clears AF/AE/AWB regions. + /// Cancels current [FocusMeteringAction] and clears AF/AE/AWB regions. Future cancelFocusAndMetering() => _api.cancelFocusAndMeteringFromInstance(this); - /// Set the exposure compensation value for related [Camera]. + /// Sets the exposure compensation value for related [Camera] and returns the + /// new target exposure value. + /// + /// The exposure compensation value to set on the camera which must be + /// within the range of the [ExposureState]'s `exposureCompensationRange` for + /// the call to succeed. /// /// Returns null if the exposure compensation index failed to be set. Future setExposureCompensationIndex(int index) async { @@ -136,7 +141,7 @@ class _CameraControlHostApiImpl extends CameraControlHostApi { } } - /// Cancels current FocusMeteringAction and clears AF/AE/AWB regions for the + /// Cancels current [FocusMeteringAction] and clears AF/AE/AWB regions for the /// specified [CameraControl] instance. Future cancelFocusAndMeteringFromInstance( CameraControl instance) async { @@ -144,7 +149,8 @@ class _CameraControlHostApiImpl extends CameraControlHostApi { await cancelFocusAndMetering(identifier); } - /// Sets exposure compensation index for specified [CameraControl] instance. + /// Sets exposure compensation index for specified [CameraControl] instance + /// and returns the new target exposure value. Future setExposureCompensationIndexFromInstance( CameraControl instance, int index) async { final int identifier = instanceManager.getIdentifier(instance)!; diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart index d61fcaca5cf..65b593f3734 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -8,10 +8,12 @@ import 'package:meta/meta.dart' show immutable; import 'android_camera_camerax_flutter_api_impls.dart'; import 'camerax_library.g.dart'; import 'instance_manager.dart'; -import 'metering_point.dart'; import 'java_object.dart'; +import 'metering_point.dart'; -/// somethin +/// A configuration used to trigger a focus and/or metering action. +/// +/// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction. @immutable class FocusMeteringAction extends JavaObject { /// Creates a [FocusMeteringAction]. @@ -45,18 +47,22 @@ class FocusMeteringAction extends JavaObject { late final _FocusMeteringActionHostApiImpl _api; - /// Flag for metering mode that indicates the AF (Auto Focus) region is - /// enabled. + /// Flag for metering mode that indicates the auto focus region is enabled. + /// + /// An autofocus scan is also triggered when [flagAf] is assigned. /// - /// An autofocus scan is also triggered when FLAG_AF is assigned. + /// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction#FLAG_AF(). static const int flagAf = 1; - /// Flag for metering mode that indicates the AE (Auto Exposure) - /// region is enabled. + /// Flag for metering mode that indicates the auto exposure region is enabled. + /// + /// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction#FLAG_AE(). static const int flagAe = 2; - /// Flag for metering mode that indicates the AWB (Auto White Balance) region - /// is enabled. + /// Flag for metering mode that indicates the auto white balance region is + /// enabled. + /// + /// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction#FLAG_AWB(). static const int flagAwb = 4; } 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 3657cb8ec11..6dbce610d59 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,34 +4,36 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i16; -import 'dart:typed_data' as _i27; +import 'dart:typed_data' as _i29; import 'package:camera_android_camerax/src/analyzer.dart' as _i15; import 'package:camera_android_camerax/src/camera.dart' as _i9; import 'package:camera_android_camerax/src/camera_control.dart' as _i3; import 'package:camera_android_camerax/src/camera_info.dart' as _i2; -import 'package:camera_android_camerax/src/camera_selector.dart' as _i20; +import 'package:camera_android_camerax/src/camera_selector.dart' as _i22; import 'package:camera_android_camerax/src/camera_state.dart' as _i18; import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i7; import 'package:camera_android_camerax/src/exposure_state.dart' as _i5; -import 'package:camera_android_camerax/src/fallback_strategy.dart' as _i21; -import 'package:camera_android_camerax/src/image_analysis.dart' as _i22; -import 'package:camera_android_camerax/src/image_capture.dart' as _i23; +import 'package:camera_android_camerax/src/fallback_strategy.dart' as _i23; +import 'package:camera_android_camerax/src/focus_metering_action.dart' as _i21; +import 'package:camera_android_camerax/src/focus_metering_result.dart' as _i20; +import 'package:camera_android_camerax/src/image_analysis.dart' as _i24; +import 'package:camera_android_camerax/src/image_capture.dart' as _i25; import 'package:camera_android_camerax/src/image_proxy.dart' as _i17; import 'package:camera_android_camerax/src/live_data.dart' as _i4; -import 'package:camera_android_camerax/src/observer.dart' as _i26; +import 'package:camera_android_camerax/src/observer.dart' as _i28; import 'package:camera_android_camerax/src/pending_recording.dart' as _i10; -import 'package:camera_android_camerax/src/plane_proxy.dart' as _i25; -import 'package:camera_android_camerax/src/preview.dart' as _i28; +import 'package:camera_android_camerax/src/plane_proxy.dart' as _i27; +import 'package:camera_android_camerax/src/preview.dart' as _i30; import 'package:camera_android_camerax/src/process_camera_provider.dart' - as _i29; -import 'package:camera_android_camerax/src/quality_selector.dart' as _i31; + as _i31; +import 'package:camera_android_camerax/src/quality_selector.dart' as _i33; import 'package:camera_android_camerax/src/recorder.dart' as _i11; import 'package:camera_android_camerax/src/recording.dart' as _i8; -import 'package:camera_android_camerax/src/resolution_selector.dart' as _i32; -import 'package:camera_android_camerax/src/resolution_strategy.dart' as _i33; -import 'package:camera_android_camerax/src/use_case.dart' as _i30; -import 'package:camera_android_camerax/src/video_capture.dart' as _i34; +import 'package:camera_android_camerax/src/resolution_selector.dart' as _i34; +import 'package:camera_android_camerax/src/resolution_strategy.dart' as _i35; +import 'package:camera_android_camerax/src/use_case.dart' as _i32; +import 'package:camera_android_camerax/src/video_capture.dart' as _i36; import 'package:camera_android_camerax/src/zoom_state.dart' as _i19; import 'package:camera_platform_interface/camera_platform_interface.dart' as _i6; @@ -39,9 +41,9 @@ import 'package:flutter/foundation.dart' as _i14; import 'package:flutter/services.dart' as _i13; import 'package:flutter/widgets.dart' as _i12; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i24; +import 'package:mockito/src/dummies.dart' as _i26; -import 'test_camerax_library.g.dart' as _i35; +import 'test_camerax_library.g.dart' as _i37; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -402,6 +404,40 @@ class MockCameraControl extends _i1.Mock implements _i3.CameraControl { returnValue: _i16.Future.value(), returnValueForMissingStub: _i16.Future.value(), ) as _i16.Future); + + @override + _i16.Future<_i20.FocusMeteringResult?> startFocusAndMetering( + _i21.FocusMeteringAction? action) => + (super.noSuchMethod( + Invocation.method( + #startFocusAndMetering, + [action], + ), + returnValue: _i16.Future<_i20.FocusMeteringResult?>.value(), + returnValueForMissingStub: + _i16.Future<_i20.FocusMeteringResult?>.value(), + ) as _i16.Future<_i20.FocusMeteringResult?>); + + @override + _i16.Future cancelFocusAndMetering() => (super.noSuchMethod( + Invocation.method( + #cancelFocusAndMetering, + [], + ), + returnValue: _i16.Future.value(), + returnValueForMissingStub: _i16.Future.value(), + ) as _i16.Future); + + @override + _i16.Future setExposureCompensationIndex(int? index) => + (super.noSuchMethod( + Invocation.method( + #setExposureCompensationIndex, + [index], + ), + returnValue: _i16.Future.value(), + returnValueForMissingStub: _i16.Future.value(), + ) as _i16.Future); } /// A class which mocks [CameraImageData]. @@ -448,7 +484,7 @@ class MockCameraImageData extends _i1.Mock implements _i6.CameraImageData { /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockCameraSelector extends _i1.Mock implements _i20.CameraSelector { +class MockCameraSelector extends _i1.Mock implements _i22.CameraSelector { @override _i16.Future> filter(List<_i2.CameraInfo>? cameraInfos) => (super.noSuchMethod( @@ -494,7 +530,7 @@ class MockExposureState extends _i1.Mock implements _i5.ExposureState { /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockFallbackStrategy extends _i1.Mock implements _i21.FallbackStrategy { +class MockFallbackStrategy extends _i1.Mock implements _i23.FallbackStrategy { @override _i7.VideoQuality get quality => (super.noSuchMethod( Invocation.getter(#quality), @@ -515,7 +551,7 @@ class MockFallbackStrategy extends _i1.Mock implements _i21.FallbackStrategy { /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockImageAnalysis extends _i1.Mock implements _i22.ImageAnalysis { +class MockImageAnalysis extends _i1.Mock implements _i24.ImageAnalysis { @override _i16.Future setTargetRotation(int? rotation) => (super.noSuchMethod( Invocation.method( @@ -551,7 +587,7 @@ class MockImageAnalysis extends _i1.Mock implements _i22.ImageAnalysis { /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockImageCapture extends _i1.Mock implements _i23.ImageCapture { +class MockImageCapture extends _i1.Mock implements _i25.ImageCapture { @override _i16.Future setTargetRotation(int? rotation) => (super.noSuchMethod( Invocation.method( @@ -578,7 +614,7 @@ class MockImageCapture extends _i1.Mock implements _i23.ImageCapture { #takePicture, [], ), - returnValue: _i16.Future.value(_i24.dummyValue( + returnValue: _i16.Future.value(_i26.dummyValue( this, Invocation.method( #takePicture, @@ -586,7 +622,7 @@ class MockImageCapture extends _i1.Mock implements _i23.ImageCapture { ), )), returnValueForMissingStub: - _i16.Future.value(_i24.dummyValue( + _i16.Future.value(_i26.dummyValue( this, Invocation.method( #takePicture, @@ -623,16 +659,16 @@ class MockImageProxy extends _i1.Mock implements _i17.ImageProxy { ) as int); @override - _i16.Future> getPlanes() => (super.noSuchMethod( + _i16.Future> getPlanes() => (super.noSuchMethod( Invocation.method( #getPlanes, [], ), returnValue: - _i16.Future>.value(<_i25.PlaneProxy>[]), + _i16.Future>.value(<_i27.PlaneProxy>[]), returnValueForMissingStub: - _i16.Future>.value(<_i25.PlaneProxy>[]), - ) as _i16.Future>); + _i16.Future>.value(<_i27.PlaneProxy>[]), + ) as _i16.Future>); @override _i16.Future close() => (super.noSuchMethod( @@ -649,7 +685,7 @@ class MockImageProxy extends _i1.Mock implements _i17.ImageProxy { /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockObserver extends _i1.Mock implements _i26.Observer<_i18.CameraState> { +class MockObserver extends _i1.Mock implements _i28.Observer<_i18.CameraState> { @override void Function(Object) get onChanged => (super.noSuchMethod( Invocation.getter(#onChanged), @@ -700,13 +736,13 @@ class MockPendingRecording extends _i1.Mock implements _i10.PendingRecording { /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockPlaneProxy extends _i1.Mock implements _i25.PlaneProxy { +class MockPlaneProxy extends _i1.Mock implements _i27.PlaneProxy { @override - _i27.Uint8List get buffer => (super.noSuchMethod( + _i29.Uint8List get buffer => (super.noSuchMethod( Invocation.getter(#buffer), - returnValue: _i27.Uint8List(0), - returnValueForMissingStub: _i27.Uint8List(0), - ) as _i27.Uint8List); + returnValue: _i29.Uint8List(0), + returnValueForMissingStub: _i29.Uint8List(0), + ) as _i29.Uint8List); @override int get pixelStride => (super.noSuchMethod( @@ -727,7 +763,7 @@ class MockPlaneProxy extends _i1.Mock implements _i25.PlaneProxy { /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockPreview extends _i1.Mock implements _i28.Preview { +class MockPreview extends _i1.Mock implements _i30.Preview { @override _i16.Future setTargetRotation(int? rotation) => (super.noSuchMethod( Invocation.method( @@ -787,7 +823,7 @@ class MockPreview extends _i1.Mock implements _i28.Preview { /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable class MockProcessCameraProvider extends _i1.Mock - implements _i29.ProcessCameraProvider { + implements _i31.ProcessCameraProvider { @override _i16.Future> getAvailableCameraInfos() => (super.noSuchMethod( @@ -803,8 +839,8 @@ class MockProcessCameraProvider extends _i1.Mock @override _i16.Future<_i9.Camera> bindToLifecycle( - _i20.CameraSelector? cameraSelector, - List<_i30.UseCase>? useCases, + _i22.CameraSelector? cameraSelector, + List<_i32.UseCase>? useCases, ) => (super.noSuchMethod( Invocation.method( @@ -837,7 +873,7 @@ class MockProcessCameraProvider extends _i1.Mock ) as _i16.Future<_i9.Camera>); @override - _i16.Future isBound(_i30.UseCase? useCase) => (super.noSuchMethod( + _i16.Future isBound(_i32.UseCase? useCase) => (super.noSuchMethod( Invocation.method( #isBound, [useCase], @@ -847,7 +883,7 @@ class MockProcessCameraProvider extends _i1.Mock ) as _i16.Future); @override - void unbind(List<_i30.UseCase>? useCases) => super.noSuchMethod( + void unbind(List<_i32.UseCase>? useCases) => super.noSuchMethod( Invocation.method( #unbind, [useCases], @@ -869,7 +905,7 @@ class MockProcessCameraProvider extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockQualitySelector extends _i1.Mock implements _i31.QualitySelector { +class MockQualitySelector extends _i1.Mock implements _i33.QualitySelector { @override List<_i7.VideoQualityData> get qualityList => (super.noSuchMethod( Invocation.getter(#qualityList), @@ -914,14 +950,14 @@ class MockRecorder extends _i1.Mock implements _i11.Recorder { /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable class MockResolutionSelector extends _i1.Mock - implements _i32.ResolutionSelector {} + implements _i34.ResolutionSelector {} /// A class which mocks [ResolutionStrategy]. /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable class MockResolutionStrategy extends _i1.Mock - implements _i33.ResolutionStrategy {} + implements _i35.ResolutionStrategy {} /// A class which mocks [Recording]. /// @@ -973,7 +1009,7 @@ class MockRecording extends _i1.Mock implements _i8.Recording { /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockVideoCapture extends _i1.Mock implements _i34.VideoCapture { +class MockVideoCapture extends _i1.Mock implements _i36.VideoCapture { @override _i16.Future setTargetRotation(int? rotation) => (super.noSuchMethod( Invocation.method( @@ -1196,7 +1232,7 @@ class MockBuildContext extends _i1.Mock implements _i12.BuildContext { /// /// See the documentation for Mockito's code generation for more information. class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i35.TestInstanceManagerHostApi { + implements _i37.TestInstanceManagerHostApi { @override void clear() => super.noSuchMethod( Invocation.method( @@ -1211,7 +1247,7 @@ class MockTestInstanceManagerHostApi extends _i1.Mock /// /// See the documentation for Mockito's code generation for more information. class MockTestSystemServicesHostApi extends _i1.Mock - implements _i35.TestSystemServicesHostApi { + implements _i37.TestSystemServicesHostApi { @override _i16.Future<_i7.CameraPermissionsErrorData?> requestCameraPermissions( bool? enableAudio) => @@ -1238,7 +1274,7 @@ class MockTestSystemServicesHostApi extends _i1.Mock suffix, ], ), - returnValue: _i24.dummyValue( + returnValue: _i26.dummyValue( this, Invocation.method( #getTempFilePath, @@ -1248,7 +1284,7 @@ class MockTestSystemServicesHostApi extends _i1.Mock ], ), ), - returnValueForMissingStub: _i24.dummyValue( + returnValueForMissingStub: _i26.dummyValue( this, Invocation.method( #getTempFilePath, @@ -1292,7 +1328,7 @@ class MockLiveCameraState extends _i1.Mock } @override - _i16.Future observe(_i26.Observer<_i18.CameraState>? observer) => + _i16.Future observe(_i28.Observer<_i18.CameraState>? observer) => (super.noSuchMethod( Invocation.method( #observe, @@ -1324,7 +1360,7 @@ class MockLiveZoomState extends _i1.Mock } @override - _i16.Future observe(_i26.Observer<_i19.ZoomState>? observer) => + _i16.Future observe(_i28.Observer<_i19.ZoomState>? observer) => (super.noSuchMethod( Invocation.method( #observe, diff --git a/packages/camera/camera_android_camerax/test/camera_control_test.dart b/packages/camera/camera_android_camerax/test/camera_control_test.dart index 77a9e0c0327..e0f8fcd3bc1 100644 --- a/packages/camera/camera_android_camerax/test/camera_control_test.dart +++ b/packages/camera/camera_android_camerax/test/camera_control_test.dart @@ -3,6 +3,8 @@ // found in the LICENSE file. import 'package:camera_android_camerax/src/camera_control.dart'; +import 'package:camera_android_camerax/src/focus_metering_action.dart'; +import 'package:camera_android_camerax/src/focus_metering_result.dart'; import 'package:camera_android_camerax/src/instance_manager.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; @@ -73,6 +75,113 @@ void main() { verify(mockApi.setZoomRatio(cameraControlIdentifier, zoom)); }); + test( + 'startFocusAndMetering makes call on Java side to start focus and metering and returns expected result', + () async { + final MockTestCameraControlHostApi mockApi = + MockTestCameraControlHostApi(); + TestCameraControlHostApi.setup(mockApi); + + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + + final CameraControl cameraControl = CameraControl.detached( + instanceManager: instanceManager, + ); + const int cameraControlIdentifier = 75; + final FocusMeteringAction action = + FocusMeteringAction.detached(instanceManager: instanceManager); + const int actionId = 5; + final FocusMeteringResult result = + FocusMeteringResult.detached(instanceManager: instanceManager); + const int resultId = 2; + + instanceManager.addHostCreatedInstance( + cameraControl, + cameraControlIdentifier, + onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), + ); + instanceManager.addHostCreatedInstance( + action, + actionId, + onCopy: (_) => + FocusMeteringAction.detached(instanceManager: instanceManager), + ); + instanceManager.addHostCreatedInstance( + result, + resultId, + onCopy: (_) => + FocusMeteringResult.detached(instanceManager: instanceManager), + ); + + when(mockApi.startFocusAndMetering(cameraControlIdentifier, actionId)) + .thenAnswer((_) => Future.value(resultId)); + + expect(await cameraControl.startFocusAndMetering(action), equals(result)); + verify(mockApi.startFocusAndMetering(resultId, actionId)); + }); + + test( + 'cancelFocusAndMetering makes call on Java side to cancel focus and metering', + () async { + final MockTestCameraControlHostApi mockApi = + MockTestCameraControlHostApi(); + TestCameraControlHostApi.setup(mockApi); + + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + + final CameraControl cameraControl = CameraControl.detached( + instanceManager: instanceManager, + ); + const int cameraControlIdentifier = 45; + + instanceManager.addHostCreatedInstance( + cameraControl, + cameraControlIdentifier, + onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), + ); + + await cameraControl.cancelFocusAndMetering(); + + verify(mockApi.cancelFocusAndMetering(cameraControlIdentifier)); + }); + + test( + 'setExposureCompensationIndex makes call on Java side to set index and returns expected target exposure value', + () async { + final MockTestCameraControlHostApi mockApi = + MockTestCameraControlHostApi(); + TestCameraControlHostApi.setup(mockApi); + + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + + final CameraControl cameraControl = CameraControl.detached( + instanceManager: instanceManager, + ); + const int cameraControlIdentifier = 40; + + instanceManager.addHostCreatedInstance( + cameraControl, + cameraControlIdentifier, + onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), + ); + + const int index = 3; + const int fakeTargetExposureValue = 2; + when(mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)) + .thenAnswer((_) => Future.value(fakeTargetExposureValue)); + + expect(await cameraControl.setExposureCompensationIndex(3), + equals(fakeTargetExposureValue)); + verify( + mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)); + }); + test('flutterApiCreate makes call to add instance to instance manager', () { final InstanceManager instanceManager = InstanceManager( onWeakReferenceRemoved: (_) {}, diff --git a/packages/camera/camera_android_camerax/test/camera_control_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_control_test.mocks.dart index 7e89d6c8c89..8ee79586fb8 100644 --- a/packages/camera/camera_android_camerax/test/camera_control_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/camera_control_test.mocks.dart @@ -64,6 +64,49 @@ class MockTestCameraControlHostApi extends _i1.Mock returnValue: _i3.Future.value(), returnValueForMissingStub: _i3.Future.value(), ) as _i3.Future); + + @override + _i3.Future startFocusAndMetering( + int? identifier, + int? focusMeteringActionId, + ) => + (super.noSuchMethod( + Invocation.method( + #startFocusAndMetering, + [ + identifier, + focusMeteringActionId, + ], + ), + returnValue: _i3.Future.value(0), + ) as _i3.Future); + + @override + _i3.Future cancelFocusAndMetering(int? identifier) => + (super.noSuchMethod( + Invocation.method( + #cancelFocusAndMetering, + [identifier], + ), + returnValue: _i3.Future.value(), + returnValueForMissingStub: _i3.Future.value(), + ) as _i3.Future); + + @override + _i3.Future setExposureCompensationIndex( + int? identifier, + int? index, + ) => + (super.noSuchMethod( + Invocation.method( + #setExposureCompensationIndex, + [ + identifier, + index, + ], + ), + returnValue: _i3.Future.value(0), + ) as _i3.Future); } /// A class which mocks [TestInstanceManagerHostApi]. diff --git a/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart index 58a3e871669..074be3bc4ac 100644 --- a/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart @@ -54,14 +54,6 @@ class MockTestCameraInfoHostApi extends _i1.Mock ) as int); @override - int getLiveCameraState(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getLiveCameraState, - [identifier], - ), - returnValue: 0, - ) as int); - @override int getExposureState(int? identifier) => (super.noSuchMethod( Invocation.method( #getExposureState, diff --git a/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart b/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart new file mode 100644 index 00000000000..296c6a31bab --- /dev/null +++ b/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart @@ -0,0 +1,115 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:camera_android_camerax/src/camerax_library.g.dart'; +import 'package:camera_android_camerax/src/focus_metering_action.dart'; +import 'package:camera_android_camerax/src/instance_manager.dart'; +import 'package:camera_android_camerax/src/metering_point.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:mockito/annotations.dart'; +import 'package:mockito/mockito.dart'; + +import 'focus_metering_action_test.mocks.dart'; +import 'test_camerax_library.g.dart'; + +@GenerateMocks([ + MeteringPoint, + TestFocusMeteringActionHostApi, + TestInstanceManagerHostApi +]) +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + // Mocks the call to clear the native InstanceManager. + TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); + + group('FocusMeteringAction', () { + tearDown(() => TestCameraHostApi.setup(null)); + + test('detached create does not call create on the Java side', () { + final MockTestFocusMeteringActionHostApi mockApi = + MockTestFocusMeteringActionHostApi(); + TestFocusMeteringActionHostApi.setup(mockApi); + + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + + FocusMeteringAction.detached( + instanceManager: instanceManager, + ); + + verifyNever( + mockApi.create(argThat(isA()), argThat(isA>()))); + }); + test('create calls create on the Java side', () { + final MockTestFocusMeteringActionHostApi mockApi = + MockTestFocusMeteringActionHostApi(); + TestFocusMeteringActionHostApi.setup(mockApi); + + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + + final MeteringPoint mockMeteringPoint1 = MockMeteringPoint(); + const int mockMeteringPoint1Mode = FocusMeteringAction.flagAe; + const int mockMeteringPoint1Id = 7; + final MeteringPoint mockMeteringPoint2 = MockMeteringPoint(); + const int mockMeteringPoint2Mode = FocusMeteringAction.flagAwb; + const int mockMeteringPoint2Id = 17; + final List<(MeteringPoint meteringPoint, int? meteringMode)> + meteringPointInfos = + <(MeteringPoint meteringPoint, int? meteringMode)>[ + (mockMeteringPoint1, mockMeteringPoint1Mode), + (mockMeteringPoint2, mockMeteringPoint2Mode) + ]; + + instanceManager + .addHostCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id, + onCopy: (MeteringPoint original) { + return MockMeteringPoint(); + }); + instanceManager + .addHostCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id, + onCopy: (MeteringPoint original) { + return MockMeteringPoint(); + }); + + final FocusMeteringAction instance = FocusMeteringAction( + meteringPointInfos: meteringPointInfos, + instanceManager: instanceManager, + ); + + final VerificationResult verificationResult = verify(mockApi.create( + argThat(equals(instanceManager.getIdentifier(instance))), + captureAny)); + final List captureMeteringPointInfos = + verificationResult.captured.single as List; + expect(captureMeteringPointInfos.length, equals(2)); + expect(captureMeteringPointInfos[0].meteringPointId, + equals(mockMeteringPoint1Id)); + expect(captureMeteringPointInfos[0].meteringMode, mockMeteringPoint1Mode); + expect(captureMeteringPointInfos[1].meteringPointId, + equals(mockMeteringPoint2Id)); + expect(captureMeteringPointInfos[0].meteringMode, mockMeteringPoint2Mode); + }); + + test('flutterApiCreate makes call to add instance to instance manager', () { + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final FocusMeteringActionFlutterApiImpl flutterApi = + FocusMeteringActionFlutterApiImpl( + instanceManager: instanceManager, + ); + const int foucsMeteringActionId = 7; + + flutterApi.create(foucsMeteringActionId); + + expect( + instanceManager.getInstanceWithWeakReference(foucsMeteringActionId), + isA()); + }); + }); +} diff --git a/packages/camera/camera_android_camerax/test/focus_metering_action_test.mocks.dart b/packages/camera/camera_android_camerax/test/focus_metering_action_test.mocks.dart new file mode 100644 index 00000000000..717215ca228 --- /dev/null +++ b/packages/camera/camera_android_camerax/test/focus_metering_action_test.mocks.dart @@ -0,0 +1,90 @@ +// Mocks generated by Mockito 5.4.3 from annotations +// in camera_android_camerax/test/focus_metering_action_test.dart. +// Do not manually edit this file. + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i4; +import 'package:camera_android_camerax/src/metering_point.dart' as _i2; +import 'package:mockito/mockito.dart' as _i1; + +import 'test_camerax_library.g.dart' as _i3; + +// ignore_for_file: type=lint +// ignore_for_file: avoid_redundant_argument_values +// ignore_for_file: avoid_setters_without_getters +// ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package +// ignore_for_file: implementation_imports +// ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: prefer_const_constructors +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types +// ignore_for_file: subtype_of_sealed_class + +/// A class which mocks [MeteringPoint]. +/// +/// See the documentation for Mockito's code generation for more information. +// ignore: must_be_immutable +class MockMeteringPoint extends _i1.Mock implements _i2.MeteringPoint { + MockMeteringPoint() { + _i1.throwOnMissingStub(this); + } + + @override + double get x => (super.noSuchMethod( + Invocation.getter(#x), + returnValue: 0.0, + ) as double); + + @override + double get y => (super.noSuchMethod( + Invocation.getter(#y), + returnValue: 0.0, + ) as double); +} + +/// A class which mocks [TestFocusMeteringActionHostApi]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockTestFocusMeteringActionHostApi extends _i1.Mock + implements _i3.TestFocusMeteringActionHostApi { + MockTestFocusMeteringActionHostApi() { + _i1.throwOnMissingStub(this); + } + + @override + void create( + int? identifier, + List<_i4.MeteringPointInfo?>? meteringPointInfos, + ) => + super.noSuchMethod( + Invocation.method( + #create, + [ + identifier, + meteringPointInfos, + ], + ), + returnValueForMissingStub: null, + ); +} + +/// A class which mocks [TestInstanceManagerHostApi]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockTestInstanceManagerHostApi extends _i1.Mock + implements _i3.TestInstanceManagerHostApi { + MockTestInstanceManagerHostApi() { + _i1.throwOnMissingStub(this); + } + + @override + void clear() => super.noSuchMethod( + Invocation.method( + #clear, + [], + ), + returnValueForMissingStub: null, + ); +} From 4a0872c6385f014b9db8a279576b67edcd4be953 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Thu, 4 Jan 2024 14:45:56 -0800 Subject: [PATCH 10/24] More wrapping and tests --- .../FocusMeteringActionHostApiImpl.java | 16 +++- .../FocusMeteringResultHostApiImpl.java | 10 ++- .../camerax/GeneratedCameraXLibrary.java | 26 ------ .../camerax/QualitySelectorHostApiImpl.java | 2 +- .../camerax/FocusMeteringActionTest.java | 76 +++++++++++++++-- .../camerax/FocusMeteringResultTest.java | 76 +++++++++++++++++ ...roid_camera_camerax_flutter_api_impls.dart | 11 ++- .../lib/src/camerax_library.g.dart | 28 ------- .../lib/src/focus_metering_action.dart | 38 --------- .../lib/src/focus_metering_result.dart | 13 ++- .../pigeons/camerax_library.dart | 7 +- .../test/focus_metering_action_test.dart | 17 ---- .../test/focus_metering_result_test.dart | 76 +++++++++++++++++ .../focus_metering_result_test.mocks.dart | 82 +++++++++++++++++++ .../test/test_camerax_library.g.dart | 29 +++++++ 15 files changed, 373 insertions(+), 134 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java create mode 100644 packages/camera/camera_android_camerax/test/focus_metering_result_test.dart create mode 100644 packages/camera/camera_android_camerax/test/focus_metering_result_test.mocks.dart diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java index 4098a566511..0ee15680bd7 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java @@ -44,9 +44,9 @@ public static class FocusMeteringActionProxy { if (i == 0) { // On the first iteration, create the builder to add points to. if (meteringMode == null) { - focusMeteringActionBuilder = new FocusMeteringAction.Builder(meteringPoint); + focusMeteringActionBuilder = getFocusMeteringActionBuilder(meteringPoint); } else { - focusMeteringActionBuilder = new FocusMeteringAction.Builder(meteringPoint, meteringMode); + focusMeteringActionBuilder = getFocusMeteringActionBuilder(meteringPoint, meteringMode); } continue; } @@ -63,6 +63,18 @@ public static class FocusMeteringActionProxy { } } + @VisibleForTesting + @NonNull + public FocusMeteringAction.Builder getFocusMeteringActionBuilder(MeteringPoint meteringPoint) { + return new FocusMeteringAction.Builder(meteringPoint); + } + + @VisibleForTesting + @NonNull + public FocusMeteringAction.Builder getFocusMeteringActionBuilder(MeteringPoint meteringPoint, int meteringMode) { + return new new FocusMeteringAction.Builder(meteringPoint, meteringMode); + } + /** * Constructs a {@link FocusMeteringActionHostApiImpl}. * diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java index 4e551a40a50..cec8038d340 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java @@ -30,8 +30,14 @@ public class FocusMeteringResultHostApiImpl implements FocusMeteringResultHostAp /** Proxy for constructors and static method of {@link FocusMeteringResult}. */ @VisibleForTesting public static class FocusMeteringResultProxy { - /** Returns whether or not the {@link FocusMeteringResult} was successful. */ - public @NonNull + + /** + * Returns whether or not auto focus was successful. + * + * If the current camera does not support auto focus, it will return true. If auto focus is not requested, + * it will return false. + */ + @NonNull public Boolean isFocusSuccessful(@NonNull FocusMeteringResult focusMeteringResult) { return focusMeteringResult.isFocusSuccessful(); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java index ceddc6f10da..95095fe40c0 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java @@ -3483,32 +3483,6 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeter } } } - /** Generated class from Pigeon that represents Flutter messages that can be called from Java. */ - public static class FocusMeteringActionFlutterApi { - private final @NonNull BinaryMessenger binaryMessenger; - - public FocusMeteringActionFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { - this.binaryMessenger = argBinaryMessenger; - } - - /** Public interface for sending reply. */ - @SuppressWarnings("UnknownNullness") - public interface Reply { - void reply(T reply); - } - /** The codec used by FocusMeteringActionFlutterApi. */ - static @NonNull MessageCodec getCodec() { - return new StandardMessageCodec(); - } - public void create(@NonNull Long identifierArg, @NonNull Reply callback) { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.FocusMeteringActionFlutterApi.create", getCodec()); - channel.send( - new ArrayList(Collections.singletonList(identifierArg)), - channelReply -> callback.reply(null)); - } - } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface FocusMeteringResultHostApi { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java index 861ad631a3a..9ea31ed1ad3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java @@ -62,7 +62,7 @@ public static class QualitySelectorProxy { public @NonNull ResolutionInfo getResolution( @NonNull CameraInfo cameraInfo, @NonNull VideoQuality quality) { final Size result = - FocusMeteringAction.getResolution(cameraInfo, getQualityFromVideoQuality(quality)); + QualitySelector.getResolution(cameraInfo, getQualityFromVideoQuality(quality)); return new ResolutionInfo.Builder() .setWidth(Long.valueOf(result.getWidth())) .setHeight(Long.valueOf(result.getHeight())) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index b680ac217a2..13bad4b82b7 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -48,19 +48,77 @@ public void tearDown() { } @Test - public void hostApiCreate_createsExpectedFocusMeteringAction() { - // here + public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatHasMode() { + FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); + FocusMeteringActionHostApiImpl hostApi = new FocusMeteringActionHostApiImpl(testInstanceManager); + final Long focusMeteringActionIdentifier = 43L; + + FocusMeteringAction.Builder mockFocusMeteringActionBuilder = mock(FocusMeteringAction.Builder.class); + MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); + MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); + MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); + Long mockMeteringPoint1Id = 47L; + Long mockMeteringPoint2Id = 56L; + Long mockMeteringPoint3Id = 99L; + int mockMeteringPoint1Mode = FocusMeteringAction.FLAG_AE; + int mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; + + MeteringPointInfo fakeMeteringPointInfo1 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint1Id).setMeteringMode(mockMeteringPoint1Mode); + MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint2Id).setMeteringMode(mockMeteringPoint2Mode); + MeteringPointInfo fakeMeteringPointInfo3 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint3Id).setMeteringMode(null); + + instanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); + instanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); + instanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); + + when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1, mockMeteringPoint2)).thenReturn(mockFocusMeteringActionBuilder); + when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); + + List mockMeteringPointInfos = Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); + + hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos); + + verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint2, mockMeteringPoint2Mode)); + verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint3)); + assertEquals( + instanceManager.getInstance(focusMeteringActionIdentifier), + focusMeteringAction); } @Test - public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { - final FocusMeteringActionFlutterApiImpl spyFlutterApi = - spy(new FocusMeteringActionFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); + public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { + FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); + FocusMeteringActionHostApiImpl hostApi = new FocusMeteringActionHostApiImpl(testInstanceManager); + final Long focusMeteringActionIdentifier = 43L; + + FocusMeteringAction.Builder mockFocusMeteringActionBuilder = mock(FocusMeteringAction.Builder.class); + MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); + MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); + MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); + Long mockMeteringPoint1Id = 47L; + Long mockMeteringPoint2Id = 56L; + Long mockMeteringPoint3Id = 99L; + int mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; + + MeteringPointInfo fakeMeteringPointInfo1 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint1Id).setMeteringMode(null); + MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint2Id).setMeteringMode(mockMeteringPoint2Mode); + MeteringPointInfo fakeMeteringPointInfo3 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint3Id).setMeteringMode(null); + + instanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); + instanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); + instanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); + + when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1)).thenReturn(mockFocusMeteringActionBuilder); + when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); + + List mockMeteringPointInfos = Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); - spyFlutterApi.create(focusMeteringAction, reply -> {}); + hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos); - final long focusMeteringActionIdentifier = - Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(focusMeteringAction)); - verify(spyFlutterApi).create(eq(focusMeteringActionIdentifier), any()); + verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint2, mockMeteringPoint2Mode)); + verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint3)); + assertEquals( + instanceManager.getInstance(focusMeteringActionIdentifier), + focusMeteringAction); } } \ No newline at end of file diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java new file mode 100644 index 00000000000..03c87172621 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java @@ -0,0 +1,76 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import androidx.camera.core.FocusMeteringResult; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import io.flutter.plugin.common.BinaryMessenger; +import java.util.Objects; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; + +public class FocusMeteringResultTest { + @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); + + @Mock public BinaryMessenger mockBinaryMessenger; + @Mock public FocusMeteringResult focusMeteringResult; + + InstanceManager testInstanceManager; + + @Before + public void setUp() { + testInstanceManager = InstanceManager.create(identifier -> {}); + } + + @After + public void tearDown() { + testInstanceManager.stopFinalizationListener(); + } + + @Test + public void isFocusSuccessful_returnsExpectedResult() { + final FocusMeteringResultHostApiImpl focusMeteringResultHostApiImpl = + new FocusMeteringResultHostApiImpl(testInstanceManager, mock(Context.class)); + final Long focusMeteringResultIdentifier = 98L; + final boolean result = true; + + testInstanceManager.addDartCreatedInstance(focusMeteringResult, focusMeteringResultIdentifier); + + when(focusMeteringResult.isFocusSuccessful()).thenReturn(result); + + assertTrue(focusMeteringResultHostApiImpl.isFocusSuccessful(focusMeteringResultIdentifier)); + verify(focusMeteringResult).isFocusSuccessful()l + } + + @Test + public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { + final FocusMeteringResultFlutterApiImpl spyFlutterApi = + spy(new FocusMeteringResultFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); + + spyFlutterApi.create(focusMeteringResult, reply -> {}); + + final long focusMeteringResultIdentifier = + Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(focusMeteringResult)); + verify(spyFlutterApi).create(eq(focusMeteringResultIdentifier), any()); + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart index 24f159a1eab..4dc58473f0f 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart @@ -12,6 +12,7 @@ import 'camera_state_error.dart'; import 'camerax_library.g.dart'; import 'device_orientation_manager.dart'; import 'exposure_state.dart'; +import 'focus_metering_result.dart'; import 'image_proxy.dart'; import 'java_object.dart'; import 'live_data.dart'; @@ -50,7 +51,8 @@ class AndroidCameraXCameraFlutterApis { ImageProxyFlutterApiImpl? imageProxyFlutterApiImpl, PlaneProxyFlutterApiImpl? planeProxyFlutterApiImpl, AnalyzerFlutterApiImpl? analyzerFlutterApiImpl, - CameraControlFlutterApiImpl? cameraControlFlutterApiImpl}) { + CameraControlFlutterApiImpl? cameraControlFlutterApiImpl, + FocusMeteringResultFlutterApi? focusMeteringResultFlutterApi}) { this.javaObjectFlutterApiImpl = javaObjectFlutterApiImpl ?? JavaObjectFlutterApiImpl(); this.cameraInfoFlutterApiImpl = @@ -94,6 +96,8 @@ class AndroidCameraXCameraFlutterApis { planeProxyFlutterApiImpl ?? PlaneProxyFlutterApiImpl(); this.cameraControlFlutterApiImpl = cameraControlFlutterApiImpl ?? CameraControlFlutterApiImpl(); + this.focusMeteringResultFlutterApiImpl = + focusMeteringResultFlutterApiImpl ?? FocusMeteringFlutterApiImpl(); } static bool _haveBeenSetUp = false; @@ -169,6 +173,10 @@ class AndroidCameraXCameraFlutterApis { /// Flutter Api implementation for [CameraControl]. late final CameraControlFlutterApiImpl cameraControlFlutterApiImpl; + /// Flutter Api implementation for [FocusMeteringResult]. + late final FocusMeteringResultFlutterApiImpl + focusMeteringResultFlutterApiImpl; + /// Ensures all the Flutter APIs have been setup to receive calls from native code. void ensureSetUp() { if (!_haveBeenSetUp) { @@ -195,6 +203,7 @@ class AndroidCameraXCameraFlutterApis { LiveDataFlutterApi.setup(liveDataFlutterApiImpl); ObserverFlutterApi.setup(observerFlutterApiImpl); CameraControlFlutterApi.setup(cameraControlFlutterApiImpl); + FocusMeteringResultFlutterApi.setup(focusMeteringResultFlutterApiImpl); _haveBeenSetUp = true; } } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 42c29522bef..93abb1cc83e 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 @@ -2960,34 +2960,6 @@ class FocusMeteringActionHostApi { } } -abstract class FocusMeteringActionFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(FocusMeteringActionFlutterApi? api, {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FocusMeteringActionFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.FocusMeteringActionFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.FocusMeteringActionFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} - class FocusMeteringResultHostApi { /// Constructor for [FocusMeteringResultHostApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart index 65b593f3734..5f7eb22cf27 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -116,41 +116,3 @@ class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { create(identifier, meteringPointInfosWithIds); } } - -/// Flutter API implementation of [FocusMeteringAction]. -class FocusMeteringActionFlutterApiImpl extends FocusMeteringActionFlutterApi { - /// Constructs a [FocusMeteringActionFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - FocusMeteringActionFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create(int identifier) { - _instanceManager.addHostCreatedInstance( - FocusMeteringAction.detached( - binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), - identifier, - onCopy: (FocusMeteringAction original) { - return FocusMeteringAction.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart index 2d4a20a6b68..3a1afbd5fa5 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart @@ -5,13 +5,14 @@ import 'package:flutter/services.dart' show BinaryMessenger; import 'package:meta/meta.dart' show immutable; -// TODO(camsim99): add new flutter apis import 'android_camera_camerax_flutter_api_impls.dart'; import 'camerax_library.g.dart'; import 'instance_manager.dart'; import 'java_object.dart'; -/// somethin +/// The result of [CameraControl.startFocusAndMetering]. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringResult. @immutable class FocusMeteringResult extends JavaObject { /// Creates a [FocusMeteringResult] that is not automatically attached to a @@ -30,7 +31,10 @@ class FocusMeteringResult extends JavaObject { late final _FocusMeteringResultHostApiImpl _api; - /// somethin + /// Returns whether or not auto focus is successful. + /// + /// If the current camera does not support auto focus, it will return true. If + /// auto focus is not requested, it will return false. Future isFocusSuccessful() => _api.isFocusSuccessfulFromInstance(this); } @@ -58,7 +62,8 @@ class _FocusMeteringResultHostApiImpl extends FocusMeteringResultHostApi { /// Maintains instances stored to communicate with native language objects. late final InstanceManager instanceManager; - /// somethin + /// Returns whether or not the [instance] indicates that auto focus was + /// successful. Future isFocusSuccessfulFromInstance(FocusMeteringResult instance) { final int identifier = instanceManager.getIdentifier(instance)!; return isFocusSuccessful(identifier); diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index abc2581b9f6..1fee1253aa1 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -481,12 +481,7 @@ abstract class FocusMeteringActionHostApi { void create(int identifier, List meteringPointInfos); } -@FlutterApi() -abstract class FocusMeteringActionFlutterApi { - void create(int identifier); -} - -@HostApi() +@HostApi(dartHostTestHandler: 'TestFocusMeteringResultHostApi') abstract class FocusMeteringResultHostApi { bool isFocusSuccessful(int identifier); } diff --git a/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart b/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart index 296c6a31bab..1200d4a6113 100644 --- a/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart +++ b/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart @@ -94,22 +94,5 @@ void main() { equals(mockMeteringPoint2Id)); expect(captureMeteringPointInfos[0].meteringMode, mockMeteringPoint2Mode); }); - - test('flutterApiCreate makes call to add instance to instance manager', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final FocusMeteringActionFlutterApiImpl flutterApi = - FocusMeteringActionFlutterApiImpl( - instanceManager: instanceManager, - ); - const int foucsMeteringActionId = 7; - - flutterApi.create(foucsMeteringActionId); - - expect( - instanceManager.getInstanceWithWeakReference(foucsMeteringActionId), - isA()); - }); }); } diff --git a/packages/camera/camera_android_camerax/test/focus_metering_result_test.dart b/packages/camera/camera_android_camerax/test/focus_metering_result_test.dart new file mode 100644 index 00000000000..591a1c2d32b --- /dev/null +++ b/packages/camera/camera_android_camerax/test/focus_metering_result_test.dart @@ -0,0 +1,76 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:camera_android_camerax/src/focus_metering_result.dart'; +import 'package:camera_android_camerax/src/instance_manager.dart'; +import 'package:camera_android_camerax/src/metering_point.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:mockito/annotations.dart'; +import 'package:mockito/mockito.dart'; + +import 'focus_metering_result_test.mocks.dart'; +import 'test_camerax_library.g.dart'; + +@GenerateMocks([ + MeteringPoint, + TestFocusMeteringResultHostApi, + TestInstanceManagerHostApi +]) +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + // Mocks the call to clear the native InstanceManager. + TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); + + group('FocusMeteringResult', () { + tearDown(() => TestCameraHostApi.setup(null)); + + test('isFocusSuccessful returns expected result', () async { + final MockTestFocusMeteringResultHostApi mockApi = + MockTestFocusMeteringResultHostApi(); + TestFocusMeteringResultHostApi.setup(mockApi); + + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + + final FocusMeteringResult focusMeteringResult = + FocusMeteringResult.detached( + instanceManager: instanceManager, + ); + const int focusMeteringResultIdentifier = 5; + + instanceManager.addHostCreatedInstance( + focusMeteringResult, + focusMeteringResultIdentifier, + onCopy: (_) => + FocusMeteringResult.detached(instanceManager: instanceManager), + ); + + when(mockApi.isFocusSuccessful(focusMeteringResultIdentifier)) + .thenAnswer((_) => false); + + expect(await focusMeteringResult.isFocusSuccessful(), isFalse); + verify(mockApi.isFocusSuccessful(focusMeteringResultIdentifier)); + }); + + test('flutterApiCreate makes call to add instance to instance manager', () { + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final FocusMeteringResultFlutterApiImpl flutterApi = + FocusMeteringResultFlutterApiImpl( + instanceManager: instanceManager, + ); + const int focusMeteringResultIdentifier = 37; + + flutterApi.create(focusMeteringResultIdentifier); + + expect( + instanceManager + .getInstanceWithWeakReference(focusMeteringResultIdentifier), + isA()); + }); + }); +} diff --git a/packages/camera/camera_android_camerax/test/focus_metering_result_test.mocks.dart b/packages/camera/camera_android_camerax/test/focus_metering_result_test.mocks.dart new file mode 100644 index 00000000000..d35cdc15efb --- /dev/null +++ b/packages/camera/camera_android_camerax/test/focus_metering_result_test.mocks.dart @@ -0,0 +1,82 @@ +// Mocks generated by Mockito 5.4.3 from annotations +// in camera_android_camerax/test/focus_metering_result_test.dart. +// Do not manually edit this file. + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:camera_android_camerax/src/metering_point.dart' as _i2; +import 'package:mockito/mockito.dart' as _i1; + +import 'test_camerax_library.g.dart' as _i3; + +// ignore_for_file: type=lint +// ignore_for_file: avoid_redundant_argument_values +// ignore_for_file: avoid_setters_without_getters +// ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package +// ignore_for_file: implementation_imports +// ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: prefer_const_constructors +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types +// ignore_for_file: subtype_of_sealed_class + +/// A class which mocks [MeteringPoint]. +/// +/// See the documentation for Mockito's code generation for more information. +// ignore: must_be_immutable +class MockMeteringPoint extends _i1.Mock implements _i2.MeteringPoint { + MockMeteringPoint() { + _i1.throwOnMissingStub(this); + } + + @override + double get x => (super.noSuchMethod( + Invocation.getter(#x), + returnValue: 0.0, + ) as double); + + @override + double get y => (super.noSuchMethod( + Invocation.getter(#y), + returnValue: 0.0, + ) as double); +} + +/// A class which mocks [TestFocusMeteringResultHostApi]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockTestFocusMeteringResultHostApi extends _i1.Mock + implements _i3.TestFocusMeteringResultHostApi { + MockTestFocusMeteringResultHostApi() { + _i1.throwOnMissingStub(this); + } + + @override + bool isFocusSuccessful(int? identifier) => (super.noSuchMethod( + Invocation.method( + #isFocusSuccessful, + [identifier], + ), + returnValue: false, + ) as bool); +} + +/// A class which mocks [TestInstanceManagerHostApi]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockTestInstanceManagerHostApi extends _i1.Mock + implements _i3.TestInstanceManagerHostApi { + MockTestInstanceManagerHostApi() { + _i1.throwOnMissingStub(this); + } + + @override + void clear() => super.noSuchMethod( + Invocation.method( + #clear, + [], + ), + returnValueForMissingStub: null, + ); +} diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index 5490793db61..7e329e89676 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -1804,6 +1804,35 @@ abstract class TestFocusMeteringActionHostApi { } } +abstract class TestFocusMeteringResultHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = StandardMessageCodec(); + + bool isFocusSuccessful(int identifier); + + static void setup(TestFocusMeteringResultHostApi? api, {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful was null, expected non-null int.'); + final bool output = api.isFocusSuccessful(arg_identifier!); + return [output]; + }); + } + } + } +} + abstract class TestMeteringPointHostApi { static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); From aa0f94729175c5bdb9653563d6acdbf4bbbe3b98 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Thu, 4 Jan 2024 17:04:13 -0800 Subject: [PATCH 11/24] More wrapping, tests --- .../camerax/MeteringPointHostApiImpl.java | 2 +- .../plugins/camerax/MeteringPointTest.java | 0 .../lib/src/focus_metering_action.dart | 2 +- .../lib/src/metering_point.dart | 23 +++-- .../pigeons/camerax_library.dart | 9 -- .../test/metering_point_test.dart | 84 +++++++++++++++++++ .../test/metering_point_test.mocks.dart | 79 +++++++++++++++++ 7 files changed, 180 insertions(+), 19 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java create mode 100644 packages/camera/camera_android_camerax/test/metering_point_test.dart create mode 100644 packages/camera/camera_android_camerax/test/metering_point_test.mocks.dart diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java index 1e33a4acb0c..57dfb8e1937 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java @@ -28,7 +28,7 @@ public class MeteringPointHostApiImpl implements MeteringPointHostApi { public static class MeteringPointProxy { public void create(@NonNull Double x, @NonNull Double y, @Nullable Double size) { - SurfaceOrientedMeteringPointFactory factory = new SurfaceOrientedMeteringPointFactory(1f, 1f); // TODO(camsim99): get feedback on using this default instead of exposing + SurfaceOrientedMeteringPointFactory factory = new SurfaceOrientedMeteringPointFactory(1f, 1f); if (size == null) { return factory.createPoint(x, y); } else { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart index 5f7eb22cf27..30e347f0326 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -90,7 +90,7 @@ class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { /// Maintains instances stored to communicate with native language objects. late final InstanceManager instanceManager; - /// Creates an [FocusMeteringAction] instance with the flash mode and target resolution + /// Creates a [FocusMeteringAction] instance with the flash mode and target resolution /// if specified. void createFromInstance( FocusMeteringAction instance, diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point.dart b/packages/camera/camera_android_camerax/lib/src/metering_point.dart index af9fde059b4..714db9489c5 100644 --- a/packages/camera/camera_android_camerax/lib/src/metering_point.dart +++ b/packages/camera/camera_android_camerax/lib/src/metering_point.dart @@ -10,7 +10,8 @@ import 'camerax_library.g.dart'; import 'instance_manager.dart'; import 'java_object.dart'; -/// somethin +/// Representation for a region which can be converted to sensor coordinate +/// system for focus and metering purpose. @immutable class MeteringPoint extends JavaObject { /// Creates a [MeteringPoint]. @@ -19,7 +20,7 @@ class MeteringPoint extends JavaObject { InstanceManager? instanceManager, required this.x, required this.y, - required this.size, + this.size, }) : super.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager, @@ -37,7 +38,7 @@ class MeteringPoint extends JavaObject { InstanceManager? instanceManager, required this.x, required this.y, - required this.size, + this.size, }) : super.detached( binaryMessenger: binaryMessenger, instanceManager: instanceManager, @@ -49,16 +50,20 @@ class MeteringPoint extends JavaObject { late final _MeteringPointHostApiImpl _api; - /// somethin + /// X coordinate. final double x; - /// somethin + /// Y coordinate. final double y; - /// somethin + /// The size of the MeteringPoint width and height (ranging from 0 to 1), + /// which is a (normalized) percentage of the sensor width/height + /// (or crop region width/height if crop region is set). final double? size; - /// something + /// The default size of the MeteringPoint width and height + /// (ranging from 0 to 1) which is a (normalized) percentage of the sensor + /// width/height (or crop region width/height if crop region is set). static Future getDefaultPointSize( {BinaryMessenger? binaryMessenger}) { final MeteringPointHostApi hostApi = @@ -69,7 +74,7 @@ class MeteringPoint extends JavaObject { /// Host API implementation of [MeteringPoint]. class _MeteringPointHostApiImpl extends MeteringPointHostApi { - /// Constructs a [FocusMeteringActionHostApiImpl]. + /// Constructs a [_MeteringPointHostApiImpl]. /// /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, /// which routes to the host platform. @@ -91,6 +96,8 @@ class _MeteringPointHostApiImpl extends MeteringPointHostApi { /// Maintains instances stored to communicate with native language objects. late final InstanceManager instanceManager; + /// Creates a [MeteringPoint] instance with the specified [x] and [y] + /// coordinates as well as [size] if non-null. Future createFromInstance( MeteringPoint instance, double x, double y, double? size) { int? identifier = instanceManager.getIdentifier(instance); diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 1fee1253aa1..14fcf087720 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -497,12 +497,3 @@ abstract class MeteringPointHostApi { double getDefaultPointSize(); } - -@HostApi(dartHostTestHandler: 'TestDisplayOrientedMeteringPointFactoryHostApi') -abstract class DisplayOrientedMeteringPointFactoryHostApi { - void create(int identifier, int cameraInfoId, int width, int height); - - int createPoint(int x, int y, int? size); - - int getDefaultPointSize(); -} diff --git a/packages/camera/camera_android_camerax/test/metering_point_test.dart b/packages/camera/camera_android_camerax/test/metering_point_test.dart new file mode 100644 index 00000000000..0e4d66f0637 --- /dev/null +++ b/packages/camera/camera_android_camerax/test/metering_point_test.dart @@ -0,0 +1,84 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:camera_android_camerax/src/instance_manager.dart'; +import 'package:camera_android_camerax/src/metering_point.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:mockito/annotations.dart'; +import 'package:mockito/mockito.dart'; + +import 'metering_point_test.mocks.dart'; +import 'test_camerax_library.g.dart'; + +@GenerateMocks([TestInstanceManagerHostApi, TestMeteringPointHostApi]) +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + // Mocks the call to clear the native InstanceManager. + TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); + + group('MeteringPoint', () { + tearDown(() => TestMeteringPointHostApi.setup(null)); + + test('detached create does not call create on the Java side', () async { + final MockTestMeteringPointHostApi mockApi = + MockTestMeteringPointHostApi(); + TestMeteringPointHostApi.setup(mockApi); + + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + MeteringPoint.detached( + x: 0, + y: 0.3, + size: 4, + instanceManager: instanceManager, + ); + + verifyNever(mockApi.create( + argThat(isA()), argThat(isA()), argThat(isA()))); + }); + + test('create calls create on the Java side', () async { + final MockTestMeteringPointHostApi mockApi = + MockTestMeteringPointHostApi(); + TestMeteringPointHostApi.setup(mockApi); + + final InstanceManager instanceManager = InstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + + const double x = 0.5; + const double y = 0.6; + const double size = 3; + const int meteringPointIdentifier = 55; + final MeteringPoint meteringPoint = MeteringPoint.detached( + x: x, + y: y, + size: size, + instanceManager: instanceManager, + ); + instanceManager.addHostCreatedInstance( + meteringPoint, + meteringPointIdentifier, + onCopy: (_) => MeteringPoint.detached(x: x, y: y, size: size), + ); + + verify(mockApi.create(meteringPointIdentifier, x, y, size)); + }); + + test('getDefaultPointSize returns expected size', () async { + final MockTestMeteringPointHostApi mockApi = + MockTestMeteringPointHostApi(); + TestMeteringPointHostApi.setup(mockApi); + + const double defaultPointSize = 6; + when(mockApi.getDefaultPointSize()).thenAnswer((_) => defaultPointSize); + + expect( + await MeteringPoint.getDefaultPointSize(), equals(defaultPointSize)); + verify(mockApi.getDefaultPointSize()); + }); + }); +} diff --git a/packages/camera/camera_android_camerax/test/metering_point_test.mocks.dart b/packages/camera/camera_android_camerax/test/metering_point_test.mocks.dart new file mode 100644 index 00000000000..ba199f66c63 --- /dev/null +++ b/packages/camera/camera_android_camerax/test/metering_point_test.mocks.dart @@ -0,0 +1,79 @@ +// Mocks generated by Mockito 5.4.3 from annotations +// in camera_android_camerax/test/metering_point_test.dart. +// Do not manually edit this file. + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:mockito/mockito.dart' as _i1; + +import 'test_camerax_library.g.dart' as _i2; + +// ignore_for_file: type=lint +// ignore_for_file: avoid_redundant_argument_values +// ignore_for_file: avoid_setters_without_getters +// ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package +// ignore_for_file: implementation_imports +// ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: prefer_const_constructors +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types +// ignore_for_file: subtype_of_sealed_class + +/// A class which mocks [TestInstanceManagerHostApi]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockTestInstanceManagerHostApi extends _i1.Mock + implements _i2.TestInstanceManagerHostApi { + MockTestInstanceManagerHostApi() { + _i1.throwOnMissingStub(this); + } + + @override + void clear() => super.noSuchMethod( + Invocation.method( + #clear, + [], + ), + returnValueForMissingStub: null, + ); +} + +/// A class which mocks [TestMeteringPointHostApi]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockTestMeteringPointHostApi extends _i1.Mock + implements _i2.TestMeteringPointHostApi { + MockTestMeteringPointHostApi() { + _i1.throwOnMissingStub(this); + } + + @override + void create( + int? identifier, + double? x, + double? y, + double? size, + ) => + super.noSuchMethod( + Invocation.method( + #create, + [ + identifier, + x, + y, + size, + ], + ), + returnValueForMissingStub: null, + ); + + @override + double getDefaultPointSize() => (super.noSuchMethod( + Invocation.method( + #getDefaultPointSize, + [], + ), + returnValue: 0.0, + ) as double); +} From 05b784dbf579b209c19f945e0c59077ae328dbb1 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Fri, 5 Jan 2024 14:34:50 -0800 Subject: [PATCH 12/24] Final inital wrapping --- .../camerax/MeteringPointHostApiImpl.java | 12 +- .../plugins/camerax/CameraControlTest.java | 2 +- .../plugins/camerax/MeteringPointTest.java | 119 ++++++++++++++++++ 3 files changed, 129 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java index 57dfb8e1937..028c31f058c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java @@ -28,14 +28,20 @@ public class MeteringPointHostApiImpl implements MeteringPointHostApi { public static class MeteringPointProxy { public void create(@NonNull Double x, @NonNull Double y, @Nullable Double size) { - SurfaceOrientedMeteringPointFactory factory = new SurfaceOrientedMeteringPointFactory(1f, 1f); + SurfaceOrientedMeteringPointFactory factory = getSurfaceOrientedMeteringPointFactory(1f, 1f); if (size == null) { - return factory.createPoint(x, y); + return factory.createPoint(x.floatValue(), y.floatValue()); } else { - return factory.createPoint(x, y, size); + return factory.createPoint(x.floatValue(), y.floatValue(), size.floatValue()); } } + @VisibleForTesting + @NonNull + public FocusMeteringAction.Builder getSurfaceOrientedMeteringPointFactory(float width, float height) { + return new SurfaceOrientedMeteringPointFactory(width, height); + } + @NonNull public float getDefaultPointSize() { return MeteringPointFactory.getDefaultPointSize(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index e4a3fab2b18..7109f02ca72 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -253,7 +253,7 @@ public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { } } - @Test + @Test public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java index e69de29bb2d..c488e70d9a1 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java @@ -0,0 +1,119 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import androidx.camera.core.MeteringPoint; +import androidx.camera.core.MeteringPointFactory; +import androidx.camera.core.SurfaceMeteringPointFactory; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import io.flutter.plugin.common.BinaryMessenger; +import java.util.Objects; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; + +public class MeteringPointTest { + @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); + + @Mock public BinaryMessenger mockBinaryMessenger; + @Mock public MeteringPoint meteringPoint; + + InstanceManager testInstanceManager; + + @Before + public void setUp() { + testInstanceManager = InstanceManager.create(identifier -> {}); + } + + @After + public void tearDown() { + testInstanceManager.stopFinalizationListener(); + } + + @Test + public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified() { + MeteringPointHostApiImpl.MeteringPointProxy proxySpy = spy(new MeteringPointHostApiImpl.MeteringPointProxy()); + MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager); + final Long meteringPointIdentifier = 78L; + final Long x = 0.3; + final Long y = 0.2; + final Long size = 6; + final float surfaceWidth = 1f; + final float surfaceHeight = 1f; + SurfaceOrientedMeteringPointFactory mockSurfaceOrientedMeteringPointFactory = mock(SurfaceOrientedMeteringPointFactory.class); + + when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)).thenReturn(mockSurfaceOrientedMeteringPointFactory); + when(mockSurfaceOrientedMeteringPointFactory.createPoint(x.floatValue(), y.floatValue(), size.floatValue())).thenReturn(meteringPoint); + + hostApi.create(meteringPointIdentifier, x, y, size); + + verify(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y, size)); + assertEquals( + instanceManager.getInstance(meteringPointIdentifier), + meteringPoint); + } + + @Test + public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified() { + MeteringPointHostApiImpl.MeteringPointProxy proxySpy = spy(new MeteringPointHostApiImpl.MeteringPointProxy()); + MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager); + final Long meteringPointIdentifier = 78L; + final Long x = 0.3; + final Long y = 0.2; + final float surfaceWidth = 1f; + final float surfaceHeight = 1f; + SurfaceOrientedMeteringPointFactory mockSurfaceOrientedMeteringPointFactory = mock(SurfaceOrientedMeteringPointFactory.class); + + when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)).thenReturn(mockSurfaceOrientedMeteringPointFactory); + when(mockSurfaceOrientedMeteringPointFactory.createPoint(x.floatValue(), y.floatValue())).thenReturn(meteringPoint); + + hostApi.create(meteringPointIdentifier, x, y, null); + + verify(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y)); + assertEquals( + instanceManager.getInstance(meteringPointIdentifier), + meteringPoint); + } + + @Test + public void getDefaultPointSize_returnsExpectedSize() { + try (MockedStatic mockedMeteringPointFactory = Mockito.mockStatic(MeteringPointFactory.class)) { + final MeteringPointHostApiImpl meteringPointHostApiImpl = + new MeteringPointHostApiImpl(testInstanceManager); + final Long meteringPointIdentifier = 93L; + final Long index = 2L; + final Double defaultPointSize = 4D; + + testInstanceManager.addDartCreatedInstance(meteringPoint, meteringPointIdentifier); + + mockedMeteringPointFactory + .when(() -> MeteringPointFactory.getDefaultPointSize()) + .thenAnswer( + (Answer) + invocation -> defaultPointSize.floatValue()); + + assertEquals(meteringPointHostApiImpl.getDefaultPointSize(), defaultPointSize); + mockedMeteringPointFactory.verify( + () -> MeteringPointFactory.getDefaultPointSize())); + } +} +} From 36257d431101453c2e2978c1c3fd0ddea0c39346 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Fri, 5 Jan 2024 15:01:15 -0800 Subject: [PATCH 13/24] java formatting + fix dart tests --- .../camerax/CameraControlHostApiImpl.java | 69 +- .../FocusMeteringActionFlutterApiImpl.java | 4 +- .../FocusMeteringActionHostApiImpl.java | 34 +- .../FocusMeteringResultFlutterApiImpl.java | 4 +- .../FocusMeteringResultHostApiImpl.java | 31 +- .../camerax/GeneratedCameraXLibrary.java | 1130 +++++++++++------ .../camerax/MeteringPointHostApiImpl.java | 34 +- .../plugins/camerax/CameraControlTest.java | 41 +- .../camerax/FocusMeteringActionTest.java | 83 +- .../camerax/FocusMeteringResultTest.java | 11 +- .../plugins/camerax/MeteringPointTest.java | 58 +- ...roid_camera_camerax_flutter_api_impls.dart | 5 +- .../lib/src/camerax_library.g.dart | 424 ++++--- .../test/camera_control_test.dart | 2 +- .../test/focus_metering_action_test.dart | 14 +- .../test/metering_point_test.dart | 14 +- .../test/test_camerax_library.g.dart | 967 +++++++++----- 17 files changed, 1855 insertions(+), 1070 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java index 25affa54607..517c69f727c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java @@ -79,8 +79,9 @@ public void onFailure(Throwable t) { /** * Starts a focus and metering action configured by the {@code FocusMeteringAction}. - * - * Will trigger an auto focus action and enable auto focus/auto exposure/auto white balance metering regions. + * + *

Will trigger an auto focus action and enable auto focus/auto exposure/auto white balance + * metering regions. */ public void startFocusAndMetering( @NonNull CameraControl cameraControl, @@ -106,47 +107,51 @@ public void onFailure(Throwable t) { ContextCompat.getMainExecutor(context)); } - /** Cancels current {@code FocusMeteringAction} and clears AF/AE/AWB regions. */ - public void cancelFocusAndMetering(@NonNull CameraControl cameraControl, @NonNull Result result) { + /** Cancels current {@code FocusMeteringAction} and clears AF/AE/AWB regions. */ + public void cancelFocusAndMetering( + @NonNull CameraControl cameraControl, @NonNull Result result) { ListenableFuture cancelFocusAndMeteringFuture = cameraControl.cancelFocusAndMetering(); Futures.addCallback( - cancelFocusAndMeteringFuture, - new FutureCallback() { - public void onSuccess(Void voidResult) { - result.success(null); - } - - public void onFailure(Throwable t) { - result.error(t); - } - }, - ContextCompat.getMainExecutor(context)); + cancelFocusAndMeteringFuture, + new FutureCallback() { + public void onSuccess(Void voidResult) { + result.success(null); + } + + public void onFailure(Throwable t) { + result.error(t); + } + }, + ContextCompat.getMainExecutor(context)); } /** * Sets the exposure compensation index for the specified {@CameraControl} instance and returns * the new target exposure value. - * - * The exposure compensation value to set on the camera which must be within the range of the + * + *

The exposure compensation value to set on the camera which must be within the range of the * {@code ExposureState#getExposureCompensationRange()} for the current {@code ExposureState} * for the call to succeed. */ - public void setExposureCompensationIndex(@NonNull CameraControl cameraControl, @NonNull Long index, @NonNull Result result) { - ListenableFuture setExposureCompensationIndexFuture = cameraControl.setExposureCompensationIndex(index.intValue()); + public void setExposureCompensationIndex( + @NonNull CameraControl cameraControl, @NonNull Long index, @NonNull Result result) { + ListenableFuture setExposureCompensationIndexFuture = + cameraControl.setExposureCompensationIndex(index.intValue()); Futures.addCallback( - setExposureCompensationIndexFuture, - new FutureCallback() { - public void onSuccess(Integer integerResult) { - result.success(integerResult); - } - - public void onFailure(Throwable t) { - result.error(t); - } - }, - ContextCompat.getMainExecutor(context)); + setExposureCompensationIndexFuture, + new FutureCallback() { + public void onSuccess(Integer integerResult) { + result.success(integerResult); + } + + public void onFailure(Throwable t) { + result.error(t); + } + }, + ContextCompat.getMainExecutor(context)); + } } /** @@ -218,11 +223,11 @@ public void cancelFocusAndMetering(@NonNull Long identifier, @NonNull Result result) { + public void setExposureCompensationIndex( + @NonNull Long identifier, @NonNull Long index, @NonNull Result result) { proxy.setExposureCompensationIndex(getCameraControlInstance(identifier), index, result); } - private CameraControl getCameraControlInstance(@NonNull Long identifier) { return Objects.requireNonNull(instanceManager.getInstance(identifier)); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java index 287adfb59af..0cbeda860ca 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java @@ -38,9 +38,7 @@ public FocusMeteringActionFlutterApiImpl( * {@link FocusMeteringAction} instance that is attached to this one. If {@code instance} has * already been added, this method does nothing. */ - public void create( - @NonNull FocusMeteringAction instance, - @NonNull Reply callback) { + public void create(@NonNull FocusMeteringAction instance, @NonNull Reply callback) { if (!instanceManager.containsInstance(instance)) { focusMeteringActionFlutterApi.create( instanceManager.addHostCreatedInstance(instance), callback); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java index 0ee15680bd7..a010ee011d1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java @@ -4,17 +4,11 @@ package io.flutter.plugins.camerax; -import android.util.Size; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringActionHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQualityData; import java.util.ArrayList; import java.util.List; -import java.util.Objects; /** * Host API implementation for {@link FocusMeteringAction}. @@ -34,7 +28,8 @@ public static class FocusMeteringActionProxy { public @NonNull FocusMeteringAction create( @NonNull List meteringPoints, @NonNull List meteringPointModes) { if (meteringPoints.size() != meteringPointModes.size()) { - throw new IllegalArgumentException("The number of specified metering points must match the number of specified metering point modes."); + throw new IllegalArgumentException( + "The number of specified metering points must match the number of specified metering point modes."); } FocusMeteringAction.Builder focusMeteringActionBuilder; @@ -61,18 +56,19 @@ public static class FocusMeteringActionProxy { return focusMeteringActionBuilder.build(); } - } - @VisibleForTesting - @NonNull - public FocusMeteringAction.Builder getFocusMeteringActionBuilder(MeteringPoint meteringPoint) { - return new FocusMeteringAction.Builder(meteringPoint); - } + @VisibleForTesting + @NonNull + public FocusMeteringAction.Builder getFocusMeteringActionBuilder(MeteringPoint meteringPoint) { + return new FocusMeteringAction.Builder(meteringPoint); + } - @VisibleForTesting - @NonNull - public FocusMeteringAction.Builder getFocusMeteringActionBuilder(MeteringPoint meteringPoint, int meteringMode) { - return new new FocusMeteringAction.Builder(meteringPoint, meteringMode); + @VisibleForTesting + @NonNull + public FocusMeteringAction.Builder getFocusMeteringActionBuilder( + MeteringPoint meteringPoint, int meteringMode) { + return new FocusMeteringAction.Builder(meteringPoint, meteringMode); + } } /** @@ -96,9 +92,9 @@ public FocusMeteringActionHostApiImpl(@NonNull InstanceManager instanceManager) this.proxy = proxy; } - @Override - public void create(@NonNull Long identifier, @NonNull List meteringPointInfos) { + public void create( + @NonNull Long identifier, @NonNull List meteringPointInfos) { final List meteringPoints = new ArrayList(); final List meteringPointModes = new ArrayList(); for (MeteringPointInfo meteringPointInfo : meteringPointInfos) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java index 8d5a8a85cb4..1a5424b543c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java @@ -38,9 +38,7 @@ public FocusMeteringResultFlutterApiImpl( * {@link FocusMeteringResult} instance that is attached to this one. If {@code instance} has * already been added, this method does nothing. */ - public void create( - @NonNull FocusMeteringResult instance, - @NonNull Reply callback) { + public void create(@NonNull FocusMeteringResult instance, @NonNull Reply callback) { if (!instanceManager.containsInstance(instance)) { FocusMeteringResultFlutterApi.create( instanceManager.addHostCreatedInstance(instance), callback); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java index cec8038d340..86a69a5e8dc 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java @@ -4,17 +4,9 @@ package io.flutter.plugins.camerax; -import android.util.Size; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQualityData; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; /** * Host API implementation for {@link FocusMeteringResult}. @@ -30,17 +22,17 @@ public class FocusMeteringResultHostApiImpl implements FocusMeteringResultHostAp /** Proxy for constructors and static method of {@link FocusMeteringResult}. */ @VisibleForTesting public static class FocusMeteringResultProxy { - - /** - * Returns whether or not auto focus was successful. - * - * If the current camera does not support auto focus, it will return true. If auto focus is not requested, - * it will return false. - */ - @NonNull - public Boolean isFocusSuccessful(@NonNull FocusMeteringResult focusMeteringResult) { - return focusMeteringResult.isFocusSuccessful(); - } + + /** + * Returns whether or not auto focus was successful. + * + *

If the current camera does not support auto focus, it will return true. If auto focus is + * not requested, it will return false. + */ + @NonNull + public Boolean isFocusSuccessful(@NonNull FocusMeteringResult focusMeteringResult) { + return focusMeteringResult.isFocusSuccessful(); + } } /** @@ -64,7 +56,6 @@ public FocusMeteringResultHostApiImpl(@NonNull InstanceManager instanceManager) this.proxy = proxy; } - @Override @NonNull public Boolean isFocusSuccessful(@NonNull Long identifier) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java index 95095fe40c0..0797d7bee8f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java @@ -18,9 +18,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** Generated class from Pigeon. */ @SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression", "serial"}) @@ -35,8 +33,7 @@ public static class FlutterError extends RuntimeException { /** The error details. Must be a datatype supported by the api codec. */ public final Object details; - public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) - { + public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) { super(message); this.code = code; this.details = details; @@ -55,7 +52,7 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { errorList.add(exception.toString()); errorList.add(exception.getClass().getSimpleName()); errorList.add( - "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); + "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); } return errorList; } @@ -63,7 +60,7 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { /** * The states the camera can be in. * - * See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. + *

See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. */ public enum CameraStateType { CLOSED(0), @@ -82,20 +79,19 @@ private CameraStateType(final int index) { /** * The types (T) properly wrapped to be used as a LiveData. * - * If you need to add another type to support a type S to use a LiveData in - * this plugin, ensure the following is done on the Dart side: + *

If you need to add another type to support a type S to use a LiveData in this plugin, + * ensure the following is done on the Dart side: * - * * In `../lib/src/live_data.dart`, add new cases for S in - * `_LiveDataHostApiImpl#getValueFromInstances` to get the current value of - * type S from a LiveData instance and in `LiveDataFlutterApiImpl#create` - * to create the expected type of LiveData when requested. + *

* In `../lib/src/live_data.dart`, add new cases for S in + * `_LiveDataHostApiImpl#getValueFromInstances` to get the current value of type S from a + * LiveData instance and in `LiveDataFlutterApiImpl#create` to create the expected type of + * LiveData when requested. * - * On the native side, ensure the following is done: + *

On the native side, ensure the following is done: * - * * Update `LiveDataHostApiImpl#getValue` is updated to properly return - * identifiers for instances of type S. - * * Update `ObserverFlutterApiWrapper#onChanged` to properly handle receiving - * calls with instances of type S if a LiveData instance is observed. + *

* Update `LiveDataHostApiImpl#getValue` is updated to properly return identifiers for + * instances of type S. * Update `ObserverFlutterApiWrapper#onChanged` to properly handle + * receiving calls with instances of type S if a LiveData instance is observed. */ public enum LiveDataSupportedType { CAMERA_STATE(0), @@ -109,12 +105,12 @@ private LiveDataSupportedType(final int index) { } /** - * Video quality constraints that will be used by a QualitySelector to choose - * an appropriate video resolution. + * Video quality constraints that will be used by a QualitySelector to choose an appropriate video + * resolution. * - * These are pre-defined quality constants that are universally used for video. + *

These are pre-defined quality constants that are universally used for video. * - * See https://developer.android.com/reference/androidx/camera/video/Quality. + *

See https://developer.android.com/reference/androidx/camera/video/Quality. */ public enum VideoQuality { SD(0), @@ -134,7 +130,7 @@ private VideoQuality(final int index) { /** * Fallback rules for selecting video resolution. * - * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. + *

See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. */ public enum VideoResolutionFallbackRule { HIGHER_QUALITY_OR_LOWER_THAN(0), @@ -215,9 +211,13 @@ ArrayList toList() { static @NonNull ResolutionInfo fromList(@NonNull ArrayList list) { ResolutionInfo pigeonResult = new ResolutionInfo(); Object width = list.get(0); - pigeonResult.setWidth((width == null) ? null : ((width instanceof Integer) ? (Integer) width : (Long) width)); + pigeonResult.setWidth( + (width == null) ? null : ((width instanceof Integer) ? (Integer) width : (Long) width)); Object height = list.get(1); - pigeonResult.setHeight((height == null) ? null : ((height instanceof Integer) ? (Integer) height : (Long) height)); + pigeonResult.setHeight( + (height == null) + ? null + : ((height instanceof Integer) ? (Integer) height : (Long) height)); return pigeonResult; } } @@ -459,9 +459,19 @@ ArrayList toList() { static @NonNull ExposureCompensationRange fromList(@NonNull ArrayList list) { ExposureCompensationRange pigeonResult = new ExposureCompensationRange(); Object minCompensation = list.get(0); - pigeonResult.setMinCompensation((minCompensation == null) ? null : ((minCompensation instanceof Integer) ? (Integer) minCompensation : (Long) minCompensation)); + pigeonResult.setMinCompensation( + (minCompensation == null) + ? null + : ((minCompensation instanceof Integer) + ? (Integer) minCompensation + : (Long) minCompensation)); Object maxCompensation = list.get(1); - pigeonResult.setMaxCompensation((maxCompensation == null) ? null : ((maxCompensation instanceof Integer) ? (Integer) maxCompensation : (Long) maxCompensation)); + pigeonResult.setMaxCompensation( + (maxCompensation == null) + ? null + : ((maxCompensation instanceof Integer) + ? (Integer) maxCompensation + : (Long) maxCompensation)); return pigeonResult; } } @@ -469,7 +479,7 @@ ArrayList toList() { /** * Convenience class for sending lists of [Quality]s. * - * Generated class from Pigeon that represents data sent in messages. + *

Generated class from Pigeon that represents data sent in messages. */ public static final class VideoQualityData { private @NonNull VideoQuality quality; @@ -520,16 +530,12 @@ ArrayList toList() { } /** - * Convenience class for building [FocusMeteringAction] with multiple metering - * points. + * Convenience class for building [FocusMeteringAction] with multiple metering points. * - * Generated class from Pigeon that represents data sent in messages. + *

Generated class from Pigeon that represents data sent in messages. */ public static final class MeteringPointInfo { - /** - * Instance manager ID corresponding to [MeteringPoint] that relates to this - * info. - */ + /** Instance manager ID corresponding to [MeteringPoint] that relates to this info. */ private @NonNull Long meteringPointId; public @NonNull Long getMeteringPointId() { @@ -592,9 +598,17 @@ ArrayList toList() { static @NonNull MeteringPointInfo fromList(@NonNull ArrayList list) { MeteringPointInfo pigeonResult = new MeteringPointInfo(); Object meteringPointId = list.get(0); - pigeonResult.setMeteringPointId((meteringPointId == null) ? null : ((meteringPointId instanceof Integer) ? (Integer) meteringPointId : (Long) meteringPointId)); + pigeonResult.setMeteringPointId( + (meteringPointId == null) + ? null + : ((meteringPointId instanceof Integer) + ? (Integer) meteringPointId + : (Long) meteringPointId)); Object meteringMode = list.get(1); - pigeonResult.setMeteringMode((meteringMode == null) ? null : ((meteringMode instanceof Integer) ? (Integer) meteringMode : (Long) meteringMode)); + pigeonResult.setMeteringMode( + (meteringMode == null) + ? null + : ((meteringMode instanceof Integer) ? (Integer) meteringMode : (Long) meteringMode)); return pigeonResult; } } @@ -610,7 +624,7 @@ public interface InstanceManagerHostApi { /** * Clear the native `InstanceManager`. * - * This is typically only used after a hot restart. + *

This is typically only used after a hot restart. */ void clear(); @@ -618,8 +632,12 @@ public interface InstanceManagerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `InstanceManagerHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { + /** + * Sets up an instance of `InstanceManagerHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -631,8 +649,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable InstanceMa try { api.clear(); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -653,7 +670,9 @@ public interface JavaObjectHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObjectHostApi api) { { BasicMessageChannel channel = @@ -668,8 +687,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObject try { api.dispose((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -689,7 +707,7 @@ public JavaObjectFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -698,6 +716,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -710,28 +729,32 @@ public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CameraInfoHostApi { - @NonNull + @NonNull Long getSensorRotationDegrees(@NonNull Long identifier); - @NonNull + @NonNull Long getCameraState(@NonNull Long identifier); - @NonNull + @NonNull Long getExposureState(@NonNull Long identifier); - @NonNull + @NonNull Long getZoomState(@NonNull Long identifier); /** The codec used by CameraInfoHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `CameraInfoHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `CameraInfoHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfoHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -739,10 +762,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getSensorRotationDegrees((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getSensorRotationDegrees( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -763,10 +787,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getCameraState((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getCameraState( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -779,7 +804,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.CameraInfoHostApi.getExposureState", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.CameraInfoHostApi.getExposureState", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -787,10 +814,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getExposureState((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getExposureState( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -811,10 +839,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraInfo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getZoomState((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getZoomState((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -834,7 +862,7 @@ public CameraInfoFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -843,6 +871,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -857,15 +886,19 @@ public interface CameraSelectorHostApi { void create(@NonNull Long identifier, @Nullable Long lensFacing); - @NonNull + @NonNull List filter(@NonNull Long identifier, @NonNull List cameraInfoIds); /** The codec used by CameraSelectorHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `CameraSelectorHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraSelectorHostApi api) { + /** + * Sets up an instance of `CameraSelectorHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable CameraSelectorHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -878,10 +911,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraSele Number identifierArg = (Number) args.get(0); Number lensFacingArg = (Number) args.get(1); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), (lensFacingArg == null) ? null : lensFacingArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + (lensFacingArg == null) ? null : lensFacingArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -903,10 +937,12 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraSele Number identifierArg = (Number) args.get(0); List cameraInfoIdsArg = (List) args.get(1); try { - List output = api.filter((identifierArg == null) ? null : identifierArg.longValue(), cameraInfoIdsArg); + List output = + api.filter( + (identifierArg == null) ? null : identifierArg.longValue(), + cameraInfoIdsArg); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -926,7 +962,7 @@ public CameraSelectorFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -935,7 +971,9 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @Nullable Long lensFacingArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, @Nullable Long lensFacingArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.CameraSelectorFlutterApi.create", getCodec()); @@ -949,13 +987,16 @@ public interface ProcessCameraProviderHostApi { void getInstance(@NonNull Result result); - @NonNull + @NonNull List getAvailableCameraInfos(@NonNull Long identifier); - @NonNull - Long bindToLifecycle(@NonNull Long identifier, @NonNull Long cameraSelectorIdentifier, @NonNull List useCaseIds); + @NonNull + Long bindToLifecycle( + @NonNull Long identifier, + @NonNull Long cameraSelectorIdentifier, + @NonNull List useCaseIds); - @NonNull + @NonNull Boolean isBound(@NonNull Long identifier, @NonNull Long useCaseIdentifier); void unbind(@NonNull Long identifier, @NonNull List useCaseIds); @@ -966,12 +1007,18 @@ public interface ProcessCameraProviderHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `ProcessCameraProviderHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ProcessCameraProviderHostApi api) { + /** + * Sets up an instance of `ProcessCameraProviderHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable ProcessCameraProviderHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -998,7 +1045,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1006,10 +1055,11 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - List output = api.getAvailableCameraInfos((identifierArg == null) ? null : identifierArg.longValue()); + List output = + api.getAvailableCameraInfos( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1022,7 +1072,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1032,10 +1084,15 @@ public void error(Throwable error) { Number cameraSelectorIdentifierArg = (Number) args.get(1); List useCaseIdsArg = (List) args.get(2); try { - Long output = api.bindToLifecycle((identifierArg == null) ? null : identifierArg.longValue(), (cameraSelectorIdentifierArg == null) ? null : cameraSelectorIdentifierArg.longValue(), useCaseIdsArg); + Long output = + api.bindToLifecycle( + (identifierArg == null) ? null : identifierArg.longValue(), + (cameraSelectorIdentifierArg == null) + ? null + : cameraSelectorIdentifierArg.longValue(), + useCaseIdsArg); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1048,7 +1105,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1057,10 +1116,12 @@ public void error(Throwable error) { Number identifierArg = (Number) args.get(0); Number useCaseIdentifierArg = (Number) args.get(1); try { - Boolean output = api.isBound((identifierArg == null) ? null : identifierArg.longValue(), (useCaseIdentifierArg == null) ? null : useCaseIdentifierArg.longValue()); + Boolean output = + api.isBound( + (identifierArg == null) ? null : identifierArg.longValue(), + (useCaseIdentifierArg == null) ? null : useCaseIdentifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1073,7 +1134,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1082,10 +1145,10 @@ public void error(Throwable error) { Number identifierArg = (Number) args.get(0); List useCaseIdsArg = (List) args.get(1); try { - api.unbind((identifierArg == null) ? null : identifierArg.longValue(), useCaseIdsArg); + api.unbind( + (identifierArg == null) ? null : identifierArg.longValue(), useCaseIdsArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1098,7 +1161,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1108,8 +1173,7 @@ public void error(Throwable error) { try { api.unbindAll((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1129,7 +1193,7 @@ public ProcessCameraProviderFlutterApi(@NonNull BinaryMessenger argBinaryMesseng this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1138,10 +1202,13 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create", + getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -1150,17 +1217,17 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CameraHostApi { - @NonNull + @NonNull Long getCameraInfo(@NonNull Long identifier); - @NonNull + @NonNull Long getCameraControl(@NonNull Long identifier); /** The codec used by CameraHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `CameraHostApi` to handle messages through the `binaryMessenger`. */ + /** Sets up an instance of `CameraHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraHostApi api) { { BasicMessageChannel channel = @@ -1173,10 +1240,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraHost ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getCameraInfo((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getCameraInfo((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1197,10 +1264,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraHost ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getCameraControl((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getCameraControl( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1220,7 +1288,7 @@ public CameraFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1229,6 +1297,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -1268,21 +1337,28 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface SystemServicesHostApi { - void requestCameraPermissions(@NonNull Boolean enableAudio, @NonNull Result result); + void requestCameraPermissions( + @NonNull Boolean enableAudio, @NonNull Result result); - @NonNull + @NonNull String getTempFilePath(@NonNull String prefix, @NonNull String suffix); /** The codec used by SystemServicesHostApi. */ static @NonNull MessageCodec getCodec() { return SystemServicesHostApiCodec.INSTANCE; } - /**Sets up an instance of `SystemServicesHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable SystemServicesHostApi api) { + /** + * Sets up an instance of `SystemServicesHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable SystemServicesHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1311,7 +1387,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1322,8 +1400,7 @@ public void error(Throwable error) { try { String output = api.getTempFilePath(prefixArg, suffixArg); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1343,7 +1420,7 @@ public SystemServicesFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1352,10 +1429,13 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void onCameraError(@NonNull String errorDescriptionArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError", + getCodec()); channel.send( new ArrayList(Collections.singletonList(errorDescriptionArg)), channelReply -> callback.reply(null)); @@ -1364,23 +1444,30 @@ public void onCameraError(@NonNull String errorDescriptionArg, @NonNull Reply getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `DeviceOrientationManagerHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrientationManagerHostApi api) { + /** + * Sets up an instance of `DeviceOrientationManagerHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrientationManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1389,10 +1476,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrie Boolean isFrontFacingArg = (Boolean) args.get(0); Number sensorOrientationArg = (Number) args.get(1); try { - api.startListeningForDeviceOrientationChange(isFrontFacingArg, (sensorOrientationArg == null) ? null : sensorOrientationArg.longValue()); + api.startListeningForDeviceOrientationChange( + isFrontFacingArg, + (sensorOrientationArg == null) ? null : sensorOrientationArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1405,7 +1493,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrie { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1413,8 +1503,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrie try { api.stopListeningForDeviceOrientationChange(); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1427,7 +1516,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrie { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1435,8 +1526,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DeviceOrie try { Long output = api.getDefaultDisplayRotation(); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1456,7 +1546,7 @@ public DeviceOrientationManagerFlutterApi(@NonNull BinaryMessenger argBinaryMess this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1465,10 +1555,14 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void onDeviceOrientationChanged(@NonNull String orientationArg, @NonNull Reply callback) { + + public void onDeviceOrientationChanged( + @NonNull String orientationArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged", + getCodec()); channel.send( new ArrayList(Collections.singletonList(orientationArg)), channelReply -> callback.reply(null)); @@ -1504,14 +1598,15 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface PreviewHostApi { - void create(@NonNull Long identifier, @Nullable Long rotation, @Nullable Long resolutionSelectorId); + void create( + @NonNull Long identifier, @Nullable Long rotation, @Nullable Long resolutionSelectorId); - @NonNull + @NonNull Long setSurfaceProvider(@NonNull Long identifier); void releaseFlutterSurfaceTexture(); - @NonNull + @NonNull ResolutionInfo getResolutionInfo(@NonNull Long identifier); void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation); @@ -1520,7 +1615,7 @@ public interface PreviewHostApi { static @NonNull MessageCodec getCodec() { return PreviewHostApiCodec.INSTANCE; } - /**Sets up an instance of `PreviewHostApi` to handle messages through the `binaryMessenger`. */ + /** Sets up an instance of `PreviewHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHostApi api) { { BasicMessageChannel channel = @@ -1535,10 +1630,14 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos Number rotationArg = (Number) args.get(1); Number resolutionSelectorIdArg = (Number) args.get(2); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue(), (resolutionSelectorIdArg == null) ? null : resolutionSelectorIdArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + (rotationArg == null) ? null : rotationArg.longValue(), + (resolutionSelectorIdArg == null) + ? null + : resolutionSelectorIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1551,7 +1650,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1559,10 +1660,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.setSurfaceProvider((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.setSurfaceProvider( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1575,7 +1677,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1583,8 +1687,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos try { api.releaseFlutterSurfaceTexture(); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1605,10 +1708,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - ResolutionInfo output = api.getResolutionInfo((identifierArg == null) ? null : identifierArg.longValue()); + ResolutionInfo output = + api.getResolutionInfo( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1630,10 +1734,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos Number identifierArg = (Number) args.get(0); Number rotationArg = (Number) args.get(1); try { - api.setTargetRotation((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue()); + api.setTargetRotation( + (identifierArg == null) ? null : identifierArg.longValue(), + (rotationArg == null) ? null : rotationArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1648,10 +1753,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PreviewHos /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface VideoCaptureHostApi { - @NonNull + @NonNull Long withOutput(@NonNull Long videoOutputId); - @NonNull + @NonNull Long getOutput(@NonNull Long identifier); void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation); @@ -1660,7 +1765,10 @@ public interface VideoCaptureHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `VideoCaptureHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `VideoCaptureHostApi` to handle messages through the + * `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptureHostApi api) { { BasicMessageChannel channel = @@ -1673,10 +1781,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptu ArrayList args = (ArrayList) message; Number videoOutputIdArg = (Number) args.get(0); try { - Long output = api.withOutput((videoOutputIdArg == null) ? null : videoOutputIdArg.longValue()); + Long output = + api.withOutput( + (videoOutputIdArg == null) ? null : videoOutputIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1697,10 +1806,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptu ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getOutput((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getOutput((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1713,7 +1822,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptu { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1722,10 +1833,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable VideoCaptu Number identifierArg = (Number) args.get(0); Number rotationArg = (Number) args.get(1); try { - api.setTargetRotation((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue()); + api.setTargetRotation( + (identifierArg == null) ? null : identifierArg.longValue(), + (rotationArg == null) ? null : rotationArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1745,7 +1857,7 @@ public VideoCaptureFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1754,6 +1866,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -1766,22 +1879,28 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface RecorderHostApi { - void create(@NonNull Long identifier, @Nullable Long aspectRatio, @Nullable Long bitRate, @Nullable Long qualitySelectorId); + void create( + @NonNull Long identifier, + @Nullable Long aspectRatio, + @Nullable Long bitRate, + @Nullable Long qualitySelectorId); - @NonNull + @NonNull Long getAspectRatio(@NonNull Long identifier); - @NonNull + @NonNull Long getTargetVideoEncodingBitRate(@NonNull Long identifier); - @NonNull + @NonNull Long prepareRecording(@NonNull Long identifier, @NonNull String path); /** The codec used by RecorderHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `RecorderHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `RecorderHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHostApi api) { { BasicMessageChannel channel = @@ -1797,10 +1916,13 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo Number bitRateArg = (Number) args.get(2); Number qualitySelectorIdArg = (Number) args.get(3); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), (aspectRatioArg == null) ? null : aspectRatioArg.longValue(), (bitRateArg == null) ? null : bitRateArg.longValue(), (qualitySelectorIdArg == null) ? null : qualitySelectorIdArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + (aspectRatioArg == null) ? null : aspectRatioArg.longValue(), + (bitRateArg == null) ? null : bitRateArg.longValue(), + (qualitySelectorIdArg == null) ? null : qualitySelectorIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1821,10 +1943,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getAspectRatio((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getAspectRatio( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1837,7 +1960,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1845,10 +1970,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.getTargetVideoEncodingBitRate((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.getTargetVideoEncodingBitRate( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1870,10 +1996,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecorderHo Number identifierArg = (Number) args.get(0); String pathArg = (String) args.get(1); try { - Long output = api.prepareRecording((identifierArg == null) ? null : identifierArg.longValue(), pathArg); + Long output = + api.prepareRecording( + (identifierArg == null) ? null : identifierArg.longValue(), pathArg); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1893,7 +2020,7 @@ public RecorderFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1902,7 +2029,12 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @Nullable Long aspectRatioArg, @Nullable Long bitRateArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, + @Nullable Long aspectRatioArg, + @Nullable Long bitRateArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.RecorderFlutterApi.create", getCodec()); @@ -1914,15 +2046,19 @@ public void create(@NonNull Long identifierArg, @Nullable Long aspectRatioArg, @ /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface PendingRecordingHostApi { - @NonNull + @NonNull Long start(@NonNull Long identifier); /** The codec used by PendingRecordingHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `PendingRecordingHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PendingRecordingHostApi api) { + /** + * Sets up an instance of `PendingRecordingHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable PendingRecordingHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -1934,10 +2070,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PendingRec ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Long output = api.start((identifierArg == null) ? null : identifierArg.longValue()); + Long output = + api.start((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1957,7 +2093,7 @@ public PendingRecordingFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1966,6 +2102,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -1990,7 +2127,9 @@ public interface RecordingHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `RecordingHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `RecordingHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingHostApi api) { { BasicMessageChannel channel = @@ -2005,8 +2144,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingH try { api.close((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2029,8 +2167,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingH try { api.pause((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2053,8 +2190,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingH try { api.resume((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2077,8 +2213,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable RecordingH try { api.stop((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2098,7 +2233,7 @@ public RecordingFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2107,6 +2242,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2119,7 +2255,11 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ImageCaptureHostApi { - void create(@NonNull Long identifier, @Nullable Long targetRotation, @Nullable Long flashMode, @Nullable Long resolutionSelectorId); + void create( + @NonNull Long identifier, + @Nullable Long targetRotation, + @Nullable Long flashMode, + @Nullable Long resolutionSelectorId); void setFlashMode(@NonNull Long identifier, @NonNull Long flashMode); @@ -2131,7 +2271,10 @@ public interface ImageCaptureHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `ImageCaptureHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `ImageCaptureHostApi` to handle messages through the + * `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageCaptureHostApi api) { { BasicMessageChannel channel = @@ -2147,10 +2290,15 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageCaptu Number flashModeArg = (Number) args.get(2); Number resolutionSelectorIdArg = (Number) args.get(3); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), (targetRotationArg == null) ? null : targetRotationArg.longValue(), (flashModeArg == null) ? null : flashModeArg.longValue(), (resolutionSelectorIdArg == null) ? null : resolutionSelectorIdArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + (targetRotationArg == null) ? null : targetRotationArg.longValue(), + (flashModeArg == null) ? null : flashModeArg.longValue(), + (resolutionSelectorIdArg == null) + ? null + : resolutionSelectorIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2172,10 +2320,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageCaptu Number identifierArg = (Number) args.get(0); Number flashModeArg = (Number) args.get(1); try { - api.setFlashMode((identifierArg == null) ? null : identifierArg.longValue(), (flashModeArg == null) ? null : flashModeArg.longValue()); + api.setFlashMode( + (identifierArg == null) ? null : identifierArg.longValue(), + (flashModeArg == null) ? null : flashModeArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2208,7 +2357,8 @@ public void error(Throwable error) { } }; - api.takePicture((identifierArg == null) ? null : identifierArg.longValue(), resultCallback); + api.takePicture( + (identifierArg == null) ? null : identifierArg.longValue(), resultCallback); }); } else { channel.setMessageHandler(null); @@ -2217,7 +2367,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2226,10 +2378,11 @@ public void error(Throwable error) { Number identifierArg = (Number) args.get(0); Number rotationArg = (Number) args.get(1); try { - api.setTargetRotation((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue()); + api.setTargetRotation( + (identifierArg == null) ? null : identifierArg.longValue(), + (rotationArg == null) ? null : rotationArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2243,7 +2396,8 @@ public void error(Throwable error) { } private static class ResolutionStrategyHostApiCodec extends StandardMessageCodec { - public static final ResolutionStrategyHostApiCodec INSTANCE = new ResolutionStrategyHostApiCodec(); + public static final ResolutionStrategyHostApiCodec INSTANCE = + new ResolutionStrategyHostApiCodec(); private ResolutionStrategyHostApiCodec() {} @@ -2271,14 +2425,19 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ResolutionStrategyHostApi { - void create(@NonNull Long identifier, @Nullable ResolutionInfo boundSize, @Nullable Long fallbackRule); + void create( + @NonNull Long identifier, @Nullable ResolutionInfo boundSize, @Nullable Long fallbackRule); /** The codec used by ResolutionStrategyHostApi. */ static @NonNull MessageCodec getCodec() { return ResolutionStrategyHostApiCodec.INSTANCE; } - /**Sets up an instance of `ResolutionStrategyHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ResolutionStrategyHostApi api) { + /** + * Sets up an instance of `ResolutionStrategyHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable ResolutionStrategyHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2292,10 +2451,12 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Resolution ResolutionInfo boundSizeArg = (ResolutionInfo) args.get(1); Number fallbackRuleArg = (Number) args.get(2); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), boundSizeArg, (fallbackRuleArg == null) ? null : fallbackRuleArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + boundSizeArg, + (fallbackRuleArg == null) ? null : fallbackRuleArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2310,14 +2471,21 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Resolution /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ResolutionSelectorHostApi { - void create(@NonNull Long identifier, @Nullable Long resolutionStrategyIdentifier, @Nullable Long aspectRatioStrategyIdentifier); + void create( + @NonNull Long identifier, + @Nullable Long resolutionStrategyIdentifier, + @Nullable Long aspectRatioStrategyIdentifier); /** The codec used by ResolutionSelectorHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `ResolutionSelectorHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ResolutionSelectorHostApi api) { + /** + * Sets up an instance of `ResolutionSelectorHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable ResolutionSelectorHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2331,10 +2499,16 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Resolution Number resolutionStrategyIdentifierArg = (Number) args.get(1); Number aspectRatioStrategyIdentifierArg = (Number) args.get(2); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), (resolutionStrategyIdentifierArg == null) ? null : resolutionStrategyIdentifierArg.longValue(), (aspectRatioStrategyIdentifierArg == null) ? null : aspectRatioStrategyIdentifierArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + (resolutionStrategyIdentifierArg == null) + ? null + : resolutionStrategyIdentifierArg.longValue(), + (aspectRatioStrategyIdentifierArg == null) + ? null + : aspectRatioStrategyIdentifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2349,18 +2523,25 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Resolution /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface AspectRatioStrategyHostApi { - void create(@NonNull Long identifier, @NonNull Long preferredAspectRatio, @NonNull Long fallbackRule); + void create( + @NonNull Long identifier, @NonNull Long preferredAspectRatio, @NonNull Long fallbackRule); /** The codec used by AspectRatioStrategyHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `AspectRatioStrategyHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable AspectRatioStrategyHostApi api) { + /** + * Sets up an instance of `AspectRatioStrategyHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable AspectRatioStrategyHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.AspectRatioStrategyHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.AspectRatioStrategyHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2370,10 +2551,14 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable AspectRati Number preferredAspectRatioArg = (Number) args.get(1); Number fallbackRuleArg = (Number) args.get(2); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), (preferredAspectRatioArg == null) ? null : preferredAspectRatioArg.longValue(), (fallbackRuleArg == null) ? null : fallbackRuleArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + (preferredAspectRatioArg == null) + ? null + : preferredAspectRatioArg.longValue(), + (fallbackRuleArg == null) ? null : fallbackRuleArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2420,7 +2605,7 @@ public CameraStateFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2429,7 +2614,12 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return CameraStateFlutterApiCodec.INSTANCE; } - public void create(@NonNull Long identifierArg, @NonNull CameraStateTypeData typeArg, @Nullable Long errorIdentifierArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, + @NonNull CameraStateTypeData typeArg, + @Nullable Long errorIdentifierArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.CameraStateFlutterApi.create", getCodec()); @@ -2473,7 +2663,7 @@ public ExposureStateFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2482,12 +2672,19 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return ExposureStateFlutterApiCodec.INSTANCE; } - public void create(@NonNull Long identifierArg, @NonNull ExposureCompensationRange exposureCompensationRangeArg, @NonNull Double exposureCompensationStepArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, + @NonNull ExposureCompensationRange exposureCompensationRangeArg, + @NonNull Double exposureCompensationStepArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.ExposureStateFlutterApi.create", getCodec()); channel.send( - new ArrayList(Arrays.asList(identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)), + new ArrayList( + Arrays.asList( + identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)), channelReply -> callback.reply(null)); } } @@ -2499,7 +2696,7 @@ public ZoomStateFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2508,7 +2705,12 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Double minZoomRatioArg, @NonNull Double maxZoomRatioArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, + @NonNull Double minZoomRatioArg, + @NonNull Double maxZoomRatioArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.ZoomStateFlutterApi.create", getCodec()); @@ -2520,7 +2722,10 @@ public void create(@NonNull Long identifierArg, @NonNull Double minZoomRatioArg, /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ImageAnalysisHostApi { - void create(@NonNull Long identifier, @Nullable Long targetRotation, @Nullable Long resolutionSelectorId); + void create( + @NonNull Long identifier, + @Nullable Long targetRotation, + @Nullable Long resolutionSelectorId); void setAnalyzer(@NonNull Long identifier, @NonNull Long analyzerIdentifier); @@ -2532,8 +2737,12 @@ public interface ImageAnalysisHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `ImageAnalysisHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnalysisHostApi api) { + /** + * Sets up an instance of `ImageAnalysisHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnalysisHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2547,10 +2756,14 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnaly Number targetRotationArg = (Number) args.get(1); Number resolutionSelectorIdArg = (Number) args.get(2); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), (targetRotationArg == null) ? null : targetRotationArg.longValue(), (resolutionSelectorIdArg == null) ? null : resolutionSelectorIdArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + (targetRotationArg == null) ? null : targetRotationArg.longValue(), + (resolutionSelectorIdArg == null) + ? null + : resolutionSelectorIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2572,10 +2785,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnaly Number identifierArg = (Number) args.get(0); Number analyzerIdentifierArg = (Number) args.get(1); try { - api.setAnalyzer((identifierArg == null) ? null : identifierArg.longValue(), (analyzerIdentifierArg == null) ? null : analyzerIdentifierArg.longValue()); + api.setAnalyzer( + (identifierArg == null) ? null : identifierArg.longValue(), + (analyzerIdentifierArg == null) ? null : analyzerIdentifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2588,7 +2802,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnaly { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2598,8 +2814,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnaly try { api.clearAnalyzer((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2612,7 +2827,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnaly { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2621,10 +2838,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageAnaly Number identifierArg = (Number) args.get(0); Number rotationArg = (Number) args.get(1); try { - api.setTargetRotation((identifierArg == null) ? null : identifierArg.longValue(), (rotationArg == null) ? null : rotationArg.longValue()); + api.setTargetRotation( + (identifierArg == null) ? null : identifierArg.longValue(), + (rotationArg == null) ? null : rotationArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2645,7 +2863,9 @@ public interface AnalyzerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `AnalyzerHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `AnalyzerHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable AnalyzerHostApi api) { { BasicMessageChannel channel = @@ -2660,8 +2880,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable AnalyzerHo try { api.create((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2682,7 +2901,9 @@ public interface ObserverHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `ObserverHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `ObserverHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ObserverHostApi api) { { BasicMessageChannel channel = @@ -2697,8 +2918,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ObserverHo try { api.create((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2718,7 +2938,7 @@ public ObserverFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2727,7 +2947,11 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void onChanged(@NonNull Long identifierArg, @NonNull Long valueIdentifierArg, @NonNull Reply callback) { + + public void onChanged( + @NonNull Long identifierArg, + @NonNull Long valueIdentifierArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.ObserverFlutterApi.onChanged", getCodec()); @@ -2744,7 +2968,7 @@ public CameraStateErrorFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2753,7 +2977,9 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Long codeArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, @NonNull Long codeArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.CameraStateErrorFlutterApi.create", getCodec()); @@ -2796,14 +3022,16 @@ public interface LiveDataHostApi { void removeObservers(@NonNull Long identifier); - @Nullable + @Nullable Long getValue(@NonNull Long identifier, @NonNull LiveDataSupportedTypeData type); /** The codec used by LiveDataHostApi. */ static @NonNull MessageCodec getCodec() { return LiveDataHostApiCodec.INSTANCE; } - /**Sets up an instance of `LiveDataHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `LiveDataHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable LiveDataHostApi api) { { BasicMessageChannel channel = @@ -2817,10 +3045,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable LiveDataHo Number identifierArg = (Number) args.get(0); Number observerIdentifierArg = (Number) args.get(1); try { - api.observe((identifierArg == null) ? null : identifierArg.longValue(), (observerIdentifierArg == null) ? null : observerIdentifierArg.longValue()); + api.observe( + (identifierArg == null) ? null : identifierArg.longValue(), + (observerIdentifierArg == null) ? null : observerIdentifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2843,8 +3072,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable LiveDataHo try { api.removeObservers((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2866,10 +3094,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable LiveDataHo Number identifierArg = (Number) args.get(0); LiveDataSupportedTypeData typeArg = (LiveDataSupportedTypeData) args.get(1); try { - Long output = api.getValue((identifierArg == null) ? null : identifierArg.longValue(), typeArg); + Long output = + api.getValue( + (identifierArg == null) ? null : identifierArg.longValue(), typeArg); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2916,7 +3145,7 @@ public LiveDataFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2925,7 +3154,11 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return LiveDataFlutterApiCodec.INSTANCE; } - public void create(@NonNull Long identifierArg, @NonNull LiveDataSupportedTypeData typeArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, + @NonNull LiveDataSupportedTypeData typeArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.LiveDataFlutterApi.create", getCodec()); @@ -2942,7 +3175,7 @@ public AnalyzerFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2951,6 +3184,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2959,7 +3193,11 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } - public void analyze(@NonNull Long identifierArg, @NonNull Long imageProxyIdentifierArg, @NonNull Reply callback) { + + public void analyze( + @NonNull Long identifierArg, + @NonNull Long imageProxyIdentifierArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.AnalyzerFlutterApi.analyze", getCodec()); @@ -2971,7 +3209,7 @@ public void analyze(@NonNull Long identifierArg, @NonNull Long imageProxyIdentif /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface ImageProxyHostApi { - @NonNull + @NonNull List getPlanes(@NonNull Long identifier); void close(@NonNull Long identifier); @@ -2980,7 +3218,9 @@ public interface ImageProxyHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `ImageProxyHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `ImageProxyHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageProxyHostApi api) { { BasicMessageChannel channel = @@ -2993,10 +3233,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageProxy ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - List output = api.getPlanes((identifierArg == null) ? null : identifierArg.longValue()); + List output = + api.getPlanes((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3019,8 +3259,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable ImageProxy try { api.close((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3040,7 +3279,7 @@ public ImageProxyFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3049,7 +3288,13 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull Long formatArg, @NonNull Long heightArg, @NonNull Long widthArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, + @NonNull Long formatArg, + @NonNull Long heightArg, + @NonNull Long widthArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.ImageProxyFlutterApi.create", getCodec()); @@ -3066,7 +3311,7 @@ public PlaneProxyFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3075,12 +3320,19 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long identifierArg, @NonNull byte[] bufferArg, @NonNull Long pixelStrideArg, @NonNull Long rowStrideArg, @NonNull Reply callback) { + + public void create( + @NonNull Long identifierArg, + @NonNull byte[] bufferArg, + @NonNull Long pixelStrideArg, + @NonNull Long rowStrideArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.PlaneProxyFlutterApi.create", getCodec()); channel.send( - new ArrayList(Arrays.asList(identifierArg, bufferArg, pixelStrideArg, rowStrideArg)), + new ArrayList( + Arrays.asList(identifierArg, bufferArg, pixelStrideArg, rowStrideArg)), channelReply -> callback.reply(null)); } } @@ -3119,17 +3371,24 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface QualitySelectorHostApi { - void create(@NonNull Long identifier, @NonNull List videoQualityDataList, @Nullable Long fallbackStrategyId); + void create( + @NonNull Long identifier, + @NonNull List videoQualityDataList, + @Nullable Long fallbackStrategyId); - @NonNull + @NonNull ResolutionInfo getResolution(@NonNull Long cameraInfoId, @NonNull VideoQuality quality); /** The codec used by QualitySelectorHostApi. */ static @NonNull MessageCodec getCodec() { return QualitySelectorHostApiCodec.INSTANCE; } - /**Sets up an instance of `QualitySelectorHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable QualitySelectorHostApi api) { + /** + * Sets up an instance of `QualitySelectorHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable QualitySelectorHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3140,13 +3399,16 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable QualitySel ArrayList wrapped = new ArrayList(); ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); - List videoQualityDataListArg = (List) args.get(1); + List videoQualityDataListArg = + (List) args.get(1); Number fallbackStrategyIdArg = (Number) args.get(2); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), videoQualityDataListArg, (fallbackStrategyIdArg == null) ? null : fallbackStrategyIdArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + videoQualityDataListArg, + (fallbackStrategyIdArg == null) ? null : fallbackStrategyIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3159,19 +3421,24 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable QualitySel { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.QualitySelectorHostApi.getResolution", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.QualitySelectorHostApi.getResolution", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); ArrayList args = (ArrayList) message; Number cameraInfoIdArg = (Number) args.get(0); - VideoQuality qualityArg = args.get(1) == null ? null : VideoQuality.values()[(int) args.get(1)]; + VideoQuality qualityArg = + args.get(1) == null ? null : VideoQuality.values()[(int) args.get(1)]; try { - ResolutionInfo output = api.getResolution((cameraInfoIdArg == null) ? null : cameraInfoIdArg.longValue(), qualityArg); + ResolutionInfo output = + api.getResolution( + (cameraInfoIdArg == null) ? null : cameraInfoIdArg.longValue(), + qualityArg); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3186,14 +3453,21 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable QualitySel /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface FallbackStrategyHostApi { - void create(@NonNull Long identifier, @NonNull VideoQuality quality, @NonNull VideoResolutionFallbackRule fallbackRule); + void create( + @NonNull Long identifier, + @NonNull VideoQuality quality, + @NonNull VideoResolutionFallbackRule fallbackRule); /** The codec used by FallbackStrategyHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `FallbackStrategyHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FallbackStrategyHostApi api) { + /** + * Sets up an instance of `FallbackStrategyHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable FallbackStrategyHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3204,13 +3478,19 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FallbackSt ArrayList wrapped = new ArrayList(); ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); - VideoQuality qualityArg = args.get(1) == null ? null : VideoQuality.values()[(int) args.get(1)]; - VideoResolutionFallbackRule fallbackRuleArg = args.get(2) == null ? null : VideoResolutionFallbackRule.values()[(int) args.get(2)]; + VideoQuality qualityArg = + args.get(1) == null ? null : VideoQuality.values()[(int) args.get(1)]; + VideoResolutionFallbackRule fallbackRuleArg = + args.get(2) == null + ? null + : VideoResolutionFallbackRule.values()[(int) args.get(2)]; try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), qualityArg, fallbackRuleArg); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + qualityArg, + fallbackRuleArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3225,22 +3505,32 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FallbackSt /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CameraControlHostApi { - void enableTorch(@NonNull Long identifier, @NonNull Boolean torch, @NonNull Result result); + void enableTorch( + @NonNull Long identifier, @NonNull Boolean torch, @NonNull Result result); - void setZoomRatio(@NonNull Long identifier, @NonNull Double ratio, @NonNull Result result); + void setZoomRatio( + @NonNull Long identifier, @NonNull Double ratio, @NonNull Result result); - void startFocusAndMetering(@NonNull Long identifier, @NonNull Long focusMeteringActionId, @NonNull Result result); + void startFocusAndMetering( + @NonNull Long identifier, + @NonNull Long focusMeteringActionId, + @NonNull Result result); void cancelFocusAndMetering(@NonNull Long identifier, @NonNull Result result); - void setExposureCompensationIndex(@NonNull Long identifier, @NonNull Long index, @NonNull Result result); + void setExposureCompensationIndex( + @NonNull Long identifier, @NonNull Long index, @NonNull Result result); /** The codec used by CameraControlHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `CameraControlHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CameraControlHostApi api) { + /** + * Sets up an instance of `CameraControlHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable CameraControlHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3265,7 +3555,10 @@ public void error(Throwable error) { } }; - api.enableTorch((identifierArg == null) ? null : identifierArg.longValue(), torchArg, resultCallback); + api.enableTorch( + (identifierArg == null) ? null : identifierArg.longValue(), + torchArg, + resultCallback); }); } else { channel.setMessageHandler(null); @@ -3274,7 +3567,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.CameraControlHostApi.setZoomRatio", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.CameraControlHostApi.setZoomRatio", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3295,7 +3590,10 @@ public void error(Throwable error) { } }; - api.setZoomRatio((identifierArg == null) ? null : identifierArg.longValue(), ratioArg, resultCallback); + api.setZoomRatio( + (identifierArg == null) ? null : identifierArg.longValue(), + ratioArg, + resultCallback); }); } else { channel.setMessageHandler(null); @@ -3304,7 +3602,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3325,7 +3625,12 @@ public void error(Throwable error) { } }; - api.startFocusAndMetering((identifierArg == null) ? null : identifierArg.longValue(), (focusMeteringActionIdArg == null) ? null : focusMeteringActionIdArg.longValue(), resultCallback); + api.startFocusAndMetering( + (identifierArg == null) ? null : identifierArg.longValue(), + (focusMeteringActionIdArg == null) + ? null + : focusMeteringActionIdArg.longValue(), + resultCallback); }); } else { channel.setMessageHandler(null); @@ -3334,7 +3639,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3354,7 +3661,8 @@ public void error(Throwable error) { } }; - api.cancelFocusAndMetering((identifierArg == null) ? null : identifierArg.longValue(), resultCallback); + api.cancelFocusAndMetering( + (identifierArg == null) ? null : identifierArg.longValue(), resultCallback); }); } else { channel.setMessageHandler(null); @@ -3363,7 +3671,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3384,7 +3694,10 @@ public void error(Throwable error) { } }; - api.setExposureCompensationIndex((identifierArg == null) ? null : identifierArg.longValue(), (indexArg == null) ? null : indexArg.longValue(), resultCallback); + api.setExposureCompensationIndex( + (identifierArg == null) ? null : identifierArg.longValue(), + (indexArg == null) ? null : indexArg.longValue(), + resultCallback); }); } else { channel.setMessageHandler(null); @@ -3400,7 +3713,7 @@ public CameraControlFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3409,6 +3722,7 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3420,7 +3734,8 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { } private static class FocusMeteringActionHostApiCodec extends StandardMessageCodec { - public static final FocusMeteringActionHostApiCodec INSTANCE = new FocusMeteringActionHostApiCodec(); + public static final FocusMeteringActionHostApiCodec INSTANCE = + new FocusMeteringActionHostApiCodec(); private FocusMeteringActionHostApiCodec() {} @@ -3454,24 +3769,32 @@ public interface FocusMeteringActionHostApi { static @NonNull MessageCodec getCodec() { return FocusMeteringActionHostApiCodec.INSTANCE; } - /**Sets up an instance of `FocusMeteringActionHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeteringActionHostApi api) { + /** + * Sets up an instance of `FocusMeteringActionHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeteringActionHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.FocusMeteringActionHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.FocusMeteringActionHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); - List meteringPointInfosArg = (List) args.get(1); + List meteringPointInfosArg = + (List) args.get(1); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), meteringPointInfosArg); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + meteringPointInfosArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3486,19 +3809,25 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeter /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface FocusMeteringResultHostApi { - @NonNull + @NonNull Boolean isFocusSuccessful(@NonNull Long identifier); /** The codec used by FocusMeteringResultHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `FocusMeteringResultHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeteringResultHostApi api) { + /** + * Sets up an instance of `FocusMeteringResultHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeteringResultHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3506,10 +3835,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FocusMeter ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - Boolean output = api.isFocusSuccessful((identifierArg == null) ? null : identifierArg.longValue()); + Boolean output = + api.isFocusSuccessful( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3529,7 +3859,7 @@ public FocusMeteringResultFlutterApi(@NonNull BinaryMessenger argBinaryMessenger this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3538,10 +3868,13 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.FocusMeteringResultFlutterApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.FocusMeteringResultFlutterApi.create", + getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -3550,17 +3883,22 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface MeteringPointHostApi { - void create(@NonNull Long identifier, @NonNull Double x, @NonNull Double y, @Nullable Double size); + void create( + @NonNull Long identifier, @NonNull Double x, @NonNull Double y, @Nullable Double size); - @NonNull + @NonNull Double getDefaultPointSize(); /** The codec used by MeteringPointHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `MeteringPointHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable MeteringPointHostApi api) { + /** + * Sets up an instance of `MeteringPointHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable MeteringPointHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -3575,10 +3913,13 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable MeteringPo Double yArg = (Double) args.get(2); Double sizeArg = (Double) args.get(3); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), xArg, yArg, sizeArg); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + xArg, + yArg, + sizeArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3591,7 +3932,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable MeteringPo { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3599,8 +3942,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable MeteringPo try { Double output = api.getDefaultPointSize(); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3615,24 +3957,35 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable MeteringPo /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface DisplayOrientedMeteringPointFactoryHostApi { - void create(@NonNull Long identifier, @NonNull Long cameraInfoId, @NonNull Long width, @NonNull Long height); + void create( + @NonNull Long identifier, + @NonNull Long cameraInfoId, + @NonNull Long width, + @NonNull Long height); - @NonNull + @NonNull Long createPoint(@NonNull Long x, @NonNull Long y, @Nullable Long size); - @NonNull + @NonNull Long getDefaultPointSize(); /** The codec used by DisplayOrientedMeteringPointFactoryHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `DisplayOrientedMeteringPointFactoryHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DisplayOrientedMeteringPointFactoryHostApi api) { + /** + * Sets up an instance of `DisplayOrientedMeteringPointFactoryHostApi` to handle messages + * through the `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, + @Nullable DisplayOrientedMeteringPointFactoryHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3643,10 +3996,13 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DisplayOri Number widthArg = (Number) args.get(2); Number heightArg = (Number) args.get(3); try { - api.create((identifierArg == null) ? null : identifierArg.longValue(), (cameraInfoIdArg == null) ? null : cameraInfoIdArg.longValue(), (widthArg == null) ? null : widthArg.longValue(), (heightArg == null) ? null : heightArg.longValue()); + api.create( + (identifierArg == null) ? null : identifierArg.longValue(), + (cameraInfoIdArg == null) ? null : cameraInfoIdArg.longValue(), + (widthArg == null) ? null : widthArg.longValue(), + (heightArg == null) ? null : heightArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3659,7 +4015,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DisplayOri { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3669,10 +4027,13 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DisplayOri Number yArg = (Number) args.get(1); Number sizeArg = (Number) args.get(2); try { - Long output = api.createPoint((xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue(), (sizeArg == null) ? null : sizeArg.longValue()); + Long output = + api.createPoint( + (xArg == null) ? null : xArg.longValue(), + (yArg == null) ? null : yArg.longValue(), + (sizeArg == null) ? null : sizeArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3685,7 +4046,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DisplayOri { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3693,8 +4056,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DisplayOri try { Long output = api.getDefaultPointSize(); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java index 028c31f058c..5aaef7d294b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java @@ -4,13 +4,11 @@ package io.flutter.plugins.camerax; -import android.util.Size; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.camera.core.MeteringPoint; import androidx.camera.core.MeteringPointFactory; -import androidx.camera.core.SurfaceMeteringPointFactory; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointHostApi; /** @@ -28,23 +26,24 @@ public class MeteringPointHostApiImpl implements MeteringPointHostApi { public static class MeteringPointProxy { public void create(@NonNull Double x, @NonNull Double y, @Nullable Double size) { - SurfaceOrientedMeteringPointFactory factory = getSurfaceOrientedMeteringPointFactory(1f, 1f); - if (size == null) { - return factory.createPoint(x.floatValue(), y.floatValue()); - } else { - return factory.createPoint(x.floatValue(), y.floatValue(), size.floatValue()); - } + SurfaceOrientedMeteringPointFactory factory = getSurfaceOrientedMeteringPointFactory(1f, 1f); + if (size == null) { + return factory.createPoint(x.floatValue(), y.floatValue()); + } else { + return factory.createPoint(x.floatValue(), y.floatValue(), size.floatValue()); + } } - @VisibleForTesting - @NonNull - public FocusMeteringAction.Builder getSurfaceOrientedMeteringPointFactory(float width, float height) { - return new SurfaceOrientedMeteringPointFactory(width, height); - } + @VisibleForTesting + @NonNull + public FocusMeteringAction.Builder getSurfaceOrientedMeteringPointFactory( + float width, float height) { + return new SurfaceOrientedMeteringPointFactory(width, height); + } - @NonNull + @NonNull public float getDefaultPointSize() { - return MeteringPointFactory.getDefaultPointSize(); + return MeteringPointFactory.getDefaultPointSize(); } } /** @@ -70,13 +69,14 @@ public MeteringPointHostApiImpl(@NonNull InstanceManager instanceManager) { } @Override - public void create(@NonNull Long identifier, @NonNull Double x, @NonNull Double y, @Nullable Double size) { + public void create( + @NonNull Long identifier, @NonNull Double x, @NonNull Double y, @Nullable Double size) { MeteringPoint meteringPoint = proxy.create(x, y, size); instanceManager.addDartCreatedInstance(meteringPoint, identifier); } @Override - @NonNull + @NonNull public Double getDefaultPointSize() { return (Double) proxy.getDefaultPointSize; } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index 7109f02ca72..f0b3b61040c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -160,7 +160,8 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { final Long mockResultId = 33L; @SuppressWarnings("unchecked") - final ListenableFuture startFocusAndMeteringFuture = mock(ListenableFuture.class); + final ListenableFuture startFocusAndMeteringFuture = + mock(ListenableFuture.class); testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); testInstanceManager.addDartCreatedInstance(mockResult, mockResultId); @@ -179,7 +180,9 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { cameraControlHostApiImpl.startFocusAndMetering( cameraControlIdentifier, mockActionId, successfulMockResult); mockedFutures.verify( - () -> Futures.addCallback(eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback( + eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); FutureCallback successfulCallback = futureCallbackCaptor.getValue(); @@ -192,9 +195,12 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { final GeneratedCameraXLibrary.Result failedMockResult = mock(GeneratedCameraXLibrary.Result.class); final Throwable testThrowable = new Throwable(); - cameraControlHostApiImpl.startFocusAndMetering(cameraControlIdentifier, mockActionId, failedMockResult); + cameraControlHostApiImpl.startFocusAndMetering( + cameraControlIdentifier, mockActionId, failedMockResult); mockedFutures.verify( - () -> Futures.addCallback(eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback( + eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); FutureCallback failedCallback = futureCallbackCaptor.getValue(); @@ -205,7 +211,7 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { } @Test - public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { + public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); @@ -229,7 +235,9 @@ public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { cameraControlHostApiImpl.cancelFocusAndMetering( cameraControlIdentifier, successfulMockResult); mockedFutures.verify( - () -> Futures.addCallback(eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback( + eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); FutureCallback successfulCallback = futureCallbackCaptor.getValue(); @@ -244,7 +252,9 @@ public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { final Throwable testThrowable = new Throwable(); cameraControlHostApiImpl.cancelFocusAndMetering(cameraControlIdentifier, failedMockResult); mockedFutures.verify( - () -> Futures.addCallback(eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback( + eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); FutureCallback failedCallback = futureCallbackCaptor.getValue(); @@ -262,11 +272,13 @@ public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected final Long index = 2L; @SuppressWarnings("unchecked") - final ListenableFuture setExposureCompensationIndexFuture = mock(ListenableFuture.class); + final ListenableFuture setExposureCompensationIndexFuture = + mock(ListenableFuture.class); testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); - when(cameraControl.setExposureCompensationIndex(index.intValue())).thenReturn(setExposureCompensationIndexFuture); + when(cameraControl.setExposureCompensationIndex(index.intValue())) + .thenReturn(setExposureCompensationIndexFuture); @SuppressWarnings("unchecked") final ArgumentCaptor> futureCallbackCaptor = @@ -279,7 +291,9 @@ public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected cameraControlHostApiImpl.setExposureCompensationIndex( cameraControlIdentifier, index, successfulMockResult); mockedFutures.verify( - () -> Futures.addCallback(eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback( + eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); FutureCallback successfulCallback = futureCallbackCaptor.getValue(); @@ -293,9 +307,12 @@ public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected final GeneratedCameraXLibrary.Result failedMockResult = mock(GeneratedCameraXLibrary.Result.class); final Throwable testThrowable = new Throwable(); - cameraControlHostApiImpl.setExposureCompensationIndex(cameraControlIdentifier, index, failedMockResult); + cameraControlHostApiImpl.setExposureCompensationIndex( + cameraControlIdentifier, index, failedMockResult); mockedFutures.verify( - () -> Futures.addCallback(eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback( + eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); FutureCallback failedCallback = futureCallbackCaptor.getValue(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index 13bad4b82b7..618e8859465 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -4,28 +4,18 @@ package io.flutter.plugins.camerax; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.content.Context; import androidx.camera.core.FocusMeteringAction; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.Mockito; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; @@ -49,11 +39,14 @@ public void tearDown() { @Test public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatHasMode() { - FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); - FocusMeteringActionHostApiImpl hostApi = new FocusMeteringActionHostApiImpl(testInstanceManager); + FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = + spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); + FocusMeteringActionHostApiImpl hostApi = + new FocusMeteringActionHostApiImpl(testInstanceManager); final Long focusMeteringActionIdentifier = 43L; - FocusMeteringAction.Builder mockFocusMeteringActionBuilder = mock(FocusMeteringAction.Builder.class); + FocusMeteringAction.Builder mockFocusMeteringActionBuilder = + mock(FocusMeteringAction.Builder.class); MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); @@ -63,35 +56,48 @@ public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThat int mockMeteringPoint1Mode = FocusMeteringAction.FLAG_AE; int mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; - MeteringPointInfo fakeMeteringPointInfo1 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint1Id).setMeteringMode(mockMeteringPoint1Mode); - MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint2Id).setMeteringMode(mockMeteringPoint2Mode); - MeteringPointInfo fakeMeteringPointInfo3 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint3Id).setMeteringMode(null); + MeteringPointInfo fakeMeteringPointInfo1 = + new MeteringPointInfo.Builder() + .setMeteringPointId(mockMeteringPoint1Id) + .setMeteringMode(mockMeteringPoint1Mode); + MeteringPointInfo fakeMeteringPointInfo2 = + new MeteringPointInfo.Builder() + .setMeteringPointId(mockMeteringPoint2Id) + .setMeteringMode(mockMeteringPoint2Mode); + MeteringPointInfo fakeMeteringPointInfo3 = + new MeteringPointInfo.Builder() + .setMeteringPointId(mockMeteringPoint3Id) + .setMeteringMode(null); instanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); instanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); instanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); - when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1, mockMeteringPoint2)).thenReturn(mockFocusMeteringActionBuilder); + when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1, mockMeteringPoint2)) + .thenReturn(mockFocusMeteringActionBuilder); when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); - List mockMeteringPointInfos = Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); + List mockMeteringPointInfos = + Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos); verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint2, mockMeteringPoint2Mode)); verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint3)); - assertEquals( - instanceManager.getInstance(focusMeteringActionIdentifier), - focusMeteringAction); + assertEquals(instanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); } @Test - public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { - FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); - FocusMeteringActionHostApiImpl hostApi = new FocusMeteringActionHostApiImpl(testInstanceManager); + public void + hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { + FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = + spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); + FocusMeteringActionHostApiImpl hostApi = + new FocusMeteringActionHostApiImpl(testInstanceManager); final Long focusMeteringActionIdentifier = 43L; - FocusMeteringAction.Builder mockFocusMeteringActionBuilder = mock(FocusMeteringAction.Builder.class); + FocusMeteringAction.Builder mockFocusMeteringActionBuilder = + mock(FocusMeteringAction.Builder.class); MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); @@ -100,25 +106,34 @@ public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThat Long mockMeteringPoint3Id = 99L; int mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; - MeteringPointInfo fakeMeteringPointInfo1 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint1Id).setMeteringMode(null); - MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint2Id).setMeteringMode(mockMeteringPoint2Mode); - MeteringPointInfo fakeMeteringPointInfo3 = new MeteringPointInfo.Builder().setMeteringPointId(mockMeteringPoint3Id).setMeteringMode(null); + MeteringPointInfo fakeMeteringPointInfo1 = + new MeteringPointInfo.Builder() + .setMeteringPointId(mockMeteringPoint1Id) + .setMeteringMode(null); + MeteringPointInfo fakeMeteringPointInfo2 = + new MeteringPointInfo.Builder() + .setMeteringPointId(mockMeteringPoint2Id) + .setMeteringMode(mockMeteringPoint2Mode); + MeteringPointInfo fakeMeteringPointInfo3 = + new MeteringPointInfo.Builder() + .setMeteringPointId(mockMeteringPoint3Id) + .setMeteringMode(null); instanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); instanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); instanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); - when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1)).thenReturn(mockFocusMeteringActionBuilder); + when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1)) + .thenReturn(mockFocusMeteringActionBuilder); when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); - List mockMeteringPointInfos = Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); + List mockMeteringPointInfos = + Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos); verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint2, mockMeteringPoint2Mode)); verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint3)); - assertEquals( - instanceManager.getInstance(focusMeteringActionIdentifier), - focusMeteringAction); + assertEquals(instanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); } -} \ No newline at end of file +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java index 03c87172621..8c99497c221 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java @@ -13,19 +13,13 @@ import android.content.Context; import androidx.camera.core.FocusMeteringResult; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; import io.flutter.plugin.common.BinaryMessenger; import java.util.Objects; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.Mockito; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; @@ -59,7 +53,7 @@ public void isFocusSuccessful_returnsExpectedResult() { when(focusMeteringResult.isFocusSuccessful()).thenReturn(result); assertTrue(focusMeteringResultHostApiImpl.isFocusSuccessful(focusMeteringResultIdentifier)); - verify(focusMeteringResult).isFocusSuccessful()l + verify(focusMeteringResult).isFocusSuccessful(); } @Test @@ -70,7 +64,8 @@ public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { spyFlutterApi.create(focusMeteringResult, reply -> {}); final long focusMeteringResultIdentifier = - Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(focusMeteringResult)); + Objects.requireNonNull( + testInstanceManager.getIdentifierForStrongReference(focusMeteringResult)); verify(spyFlutterApi).create(eq(focusMeteringResultIdentifier), any()); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java index c488e70d9a1..6cdd476c53a 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java @@ -4,27 +4,18 @@ package io.flutter.plugins.camerax; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.content.Context; import androidx.camera.core.MeteringPoint; import androidx.camera.core.MeteringPointFactory; -import androidx.camera.core.SurfaceMeteringPointFactory; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockedStatic; import org.mockito.Mockito; @@ -51,7 +42,8 @@ public void tearDown() { @Test public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified() { - MeteringPointHostApiImpl.MeteringPointProxy proxySpy = spy(new MeteringPointHostApiImpl.MeteringPointProxy()); + MeteringPointHostApiImpl.MeteringPointProxy proxySpy = + spy(new MeteringPointHostApiImpl.MeteringPointProxy()); MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager); final Long meteringPointIdentifier = 78L; final Long x = 0.3; @@ -59,44 +51,49 @@ public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified() { final Long size = 6; final float surfaceWidth = 1f; final float surfaceHeight = 1f; - SurfaceOrientedMeteringPointFactory mockSurfaceOrientedMeteringPointFactory = mock(SurfaceOrientedMeteringPointFactory.class); + SurfaceOrientedMeteringPointFactory mockSurfaceOrientedMeteringPointFactory = + mock(SurfaceOrientedMeteringPointFactory.class); - when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)).thenReturn(mockSurfaceOrientedMeteringPointFactory); - when(mockSurfaceOrientedMeteringPointFactory.createPoint(x.floatValue(), y.floatValue(), size.floatValue())).thenReturn(meteringPoint); + when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)) + .thenReturn(mockSurfaceOrientedMeteringPointFactory); + when(mockSurfaceOrientedMeteringPointFactory.createPoint( + x.floatValue(), y.floatValue(), size.floatValue())) + .thenReturn(meteringPoint); hostApi.create(meteringPointIdentifier, x, y, size); verify(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y, size)); - assertEquals( - instanceManager.getInstance(meteringPointIdentifier), - meteringPoint); + assertEquals(instanceManager.getInstance(meteringPointIdentifier), meteringPoint); } @Test public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified() { - MeteringPointHostApiImpl.MeteringPointProxy proxySpy = spy(new MeteringPointHostApiImpl.MeteringPointProxy()); + MeteringPointHostApiImpl.MeteringPointProxy proxySpy = + spy(new MeteringPointHostApiImpl.MeteringPointProxy()); MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager); final Long meteringPointIdentifier = 78L; final Long x = 0.3; final Long y = 0.2; final float surfaceWidth = 1f; final float surfaceHeight = 1f; - SurfaceOrientedMeteringPointFactory mockSurfaceOrientedMeteringPointFactory = mock(SurfaceOrientedMeteringPointFactory.class); + SurfaceOrientedMeteringPointFactory mockSurfaceOrientedMeteringPointFactory = + mock(SurfaceOrientedMeteringPointFactory.class); - when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)).thenReturn(mockSurfaceOrientedMeteringPointFactory); - when(mockSurfaceOrientedMeteringPointFactory.createPoint(x.floatValue(), y.floatValue())).thenReturn(meteringPoint); + when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)) + .thenReturn(mockSurfaceOrientedMeteringPointFactory); + when(mockSurfaceOrientedMeteringPointFactory.createPoint(x.floatValue(), y.floatValue())) + .thenReturn(meteringPoint); hostApi.create(meteringPointIdentifier, x, y, null); verify(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y)); - assertEquals( - instanceManager.getInstance(meteringPointIdentifier), - meteringPoint); + assertEquals(instanceManager.getInstance(meteringPointIdentifier), meteringPoint); } @Test public void getDefaultPointSize_returnsExpectedSize() { - try (MockedStatic mockedMeteringPointFactory = Mockito.mockStatic(MeteringPointFactory.class)) { + try (MockedStatic mockedMeteringPointFactory = + Mockito.mockStatic(MeteringPointFactory.class)) { final MeteringPointHostApiImpl meteringPointHostApiImpl = new MeteringPointHostApiImpl(testInstanceManager); final Long meteringPointIdentifier = 93L; @@ -105,15 +102,12 @@ public void getDefaultPointSize_returnsExpectedSize() { testInstanceManager.addDartCreatedInstance(meteringPoint, meteringPointIdentifier); - mockedMeteringPointFactory - .when(() -> MeteringPointFactory.getDefaultPointSize()) - .thenAnswer( - (Answer) - invocation -> defaultPointSize.floatValue()); + mockedMeteringPointFactory + .when(() -> MeteringPointFactory.getDefaultPointSize()) + .thenAnswer((Answer) invocation -> defaultPointSize.floatValue()); assertEquals(meteringPointHostApiImpl.getDefaultPointSize(), defaultPointSize); - mockedMeteringPointFactory.verify( - () -> MeteringPointFactory.getDefaultPointSize())); + mockedMeteringPointFactory.verify(() -> MeteringPointFactory.getDefaultPointSize()); } -} + } } diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart index 4dc58473f0f..db7ec4b32d4 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart @@ -52,7 +52,7 @@ class AndroidCameraXCameraFlutterApis { PlaneProxyFlutterApiImpl? planeProxyFlutterApiImpl, AnalyzerFlutterApiImpl? analyzerFlutterApiImpl, CameraControlFlutterApiImpl? cameraControlFlutterApiImpl, - FocusMeteringResultFlutterApi? focusMeteringResultFlutterApi}) { + FocusMeteringResultFlutterApiImpl? focusMeteringResultFlutterApiImpl}) { this.javaObjectFlutterApiImpl = javaObjectFlutterApiImpl ?? JavaObjectFlutterApiImpl(); this.cameraInfoFlutterApiImpl = @@ -97,7 +97,8 @@ class AndroidCameraXCameraFlutterApis { this.cameraControlFlutterApiImpl = cameraControlFlutterApiImpl ?? CameraControlFlutterApiImpl(); this.focusMeteringResultFlutterApiImpl = - focusMeteringResultFlutterApiImpl ?? FocusMeteringFlutterApiImpl(); + focusMeteringResultFlutterApiImpl ?? + FocusMeteringResultFlutterApiImpl(); } static bool _haveBeenSetUp = false; 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 93abb1cc83e..e57dc8222ac 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 @@ -258,8 +258,7 @@ class InstanceManagerHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send(null) as List?; + final List? replyList = await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -315,7 +314,8 @@ abstract class JavaObjectFlutterApi { void dispose(int identifier); - static void setup(JavaObjectFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(JavaObjectFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaObjectFlutterApi.dispose', codec, @@ -325,7 +325,7 @@ abstract class JavaObjectFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectFlutterApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.JavaObjectFlutterApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -462,7 +462,8 @@ abstract class CameraInfoFlutterApi { void create(int identifier); - static void setup(CameraInfoFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(CameraInfoFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraInfoFlutterApi.create', codec, @@ -472,7 +473,7 @@ abstract class CameraInfoFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -499,8 +500,8 @@ class CameraSelectorHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraSelectorHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_lensFacing]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_lensFacing]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -517,12 +518,13 @@ class CameraSelectorHostApi { } } - Future> filter(int arg_identifier, List arg_cameraInfoIds) async { + Future> filter( + int arg_identifier, List arg_cameraInfoIds) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraSelectorHostApi.filter', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_cameraInfoIds]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_cameraInfoIds]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -550,7 +552,8 @@ abstract class CameraSelectorFlutterApi { void create(int identifier, int? lensFacing); - static void setup(CameraSelectorFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(CameraSelectorFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraSelectorFlutterApi.create', codec, @@ -560,7 +563,7 @@ abstract class CameraSelectorFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraSelectorFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -588,8 +591,7 @@ class ProcessCameraProviderHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send(null) as List?; + final List? replyList = await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -613,7 +615,8 @@ class ProcessCameraProviderHostApi { Future> getAvailableCameraInfos(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', codec, + 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -638,12 +641,17 @@ class ProcessCameraProviderHostApi { } } - Future bindToLifecycle(int arg_identifier, int arg_cameraSelectorIdentifier, List arg_useCaseIds) async { + Future bindToLifecycle(int arg_identifier, + int arg_cameraSelectorIdentifier, List arg_useCaseIds) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', codec, + 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_cameraSelectorIdentifier, arg_useCaseIds]) as List?; + final List? replyList = await channel.send([ + arg_identifier, + arg_cameraSelectorIdentifier, + arg_useCaseIds + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -670,7 +678,8 @@ class ProcessCameraProviderHostApi { 'dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_useCaseIdentifier]) as List?; + await channel.send([arg_identifier, arg_useCaseIdentifier]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -696,8 +705,8 @@ class ProcessCameraProviderHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_useCaseIds]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_useCaseIds]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -742,7 +751,8 @@ abstract class ProcessCameraProviderFlutterApi { void create(int identifier); - static void setup(ProcessCameraProviderFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(ProcessCameraProviderFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create', codec, @@ -752,7 +762,7 @@ abstract class ProcessCameraProviderFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -845,7 +855,7 @@ abstract class CameraFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -873,7 +883,7 @@ class _SystemServicesHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -891,9 +901,11 @@ class SystemServicesHostApi { static const MessageCodec codec = _SystemServicesHostApiCodec(); - Future requestCameraPermissions(bool arg_enableAudio) async { + Future requestCameraPermissions( + bool arg_enableAudio) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', codec, + 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_enableAudio]) as List?; @@ -946,7 +958,8 @@ abstract class SystemServicesFlutterApi { void onCameraError(String errorDescription); - static void setup(SystemServicesFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(SystemServicesFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError', codec, @@ -956,7 +969,7 @@ abstract class SystemServicesFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError was null.'); + 'Argument for dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError was null.'); final List args = (message as List?)!; final String? arg_errorDescription = (args[0] as String?); assert(arg_errorDescription != null, @@ -979,12 +992,15 @@ class DeviceOrientationManagerHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future startListeningForDeviceOrientationChange(bool arg_isFrontFacing, int arg_sensorOrientation) async { + Future startListeningForDeviceOrientationChange( + bool arg_isFrontFacing, int arg_sensorOrientation) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', + codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_isFrontFacing, arg_sensorOrientation]) as List?; + await channel.send([arg_isFrontFacing, arg_sensorOrientation]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1003,10 +1019,10 @@ class DeviceOrientationManagerHostApi { Future stopListeningForDeviceOrientationChange() async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send(null) as List?; + final List? replyList = await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1025,10 +1041,10 @@ class DeviceOrientationManagerHostApi { Future getDefaultDisplayRotation() async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send(null) as List?; + final List? replyList = await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1056,17 +1072,19 @@ abstract class DeviceOrientationManagerFlutterApi { void onDeviceOrientationChanged(String orientation); - static void setup(DeviceOrientationManagerFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(DeviceOrientationManagerFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged', codec, + 'dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); + 'Argument for dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); final List args = (message as List?)!; final String? arg_orientation = (args[0] as String?); assert(arg_orientation != null, @@ -1094,7 +1112,7 @@ class _PreviewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1112,12 +1130,14 @@ class PreviewHostApi { static const MessageCodec codec = _PreviewHostApiCodec(); - Future create(int arg_identifier, int? arg_rotation, int? arg_resolutionSelectorId) async { + Future create(int arg_identifier, int? arg_rotation, + int? arg_resolutionSelectorId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PreviewHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_rotation, arg_resolutionSelectorId]) as List?; + final List? replyList = await channel.send( + [arg_identifier, arg_rotation, arg_resolutionSelectorId]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1165,8 +1185,7 @@ class PreviewHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send(null) as List?; + final List? replyList = await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1214,8 +1233,8 @@ class PreviewHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PreviewHostApi.setTargetRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_rotation]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_rotation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1301,8 +1320,8 @@ class VideoCaptureHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_rotation]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_rotation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1325,7 +1344,8 @@ abstract class VideoCaptureFlutterApi { void create(int identifier); - static void setup(VideoCaptureFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(VideoCaptureFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.VideoCaptureFlutterApi.create', codec, @@ -1335,7 +1355,7 @@ abstract class VideoCaptureFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.VideoCaptureFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1358,12 +1378,17 @@ class RecorderHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int? arg_aspectRatio, int? arg_bitRate, int? arg_qualitySelectorId) async { + Future create(int arg_identifier, int? arg_aspectRatio, + int? arg_bitRate, int? arg_qualitySelectorId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecorderHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_aspectRatio, arg_bitRate, arg_qualitySelectorId]) as List?; + final List? replyList = await channel.send([ + arg_identifier, + arg_aspectRatio, + arg_bitRate, + arg_qualitySelectorId + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1409,7 +1434,8 @@ class RecorderHostApi { Future getTargetVideoEncodingBitRate(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', codec, + 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -1438,8 +1464,8 @@ class RecorderHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecorderHostApi.prepareRecording', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_path]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_path]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1467,7 +1493,8 @@ abstract class RecorderFlutterApi { void create(int identifier, int? aspectRatio, int? bitRate); - static void setup(RecorderFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(RecorderFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecorderFlutterApi.create', codec, @@ -1477,7 +1504,7 @@ abstract class RecorderFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.RecorderFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1535,7 +1562,8 @@ abstract class PendingRecordingFlutterApi { void create(int identifier); - static void setup(PendingRecordingFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(PendingRecordingFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PendingRecordingFlutterApi.create', codec, @@ -1545,7 +1573,7 @@ abstract class PendingRecordingFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PendingRecordingFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.PendingRecordingFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1662,7 +1690,8 @@ abstract class RecordingFlutterApi { void create(int identifier); - static void setup(RecordingFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(RecordingFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecordingFlutterApi.create', codec, @@ -1672,7 +1701,7 @@ abstract class RecordingFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.RecordingFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1695,12 +1724,17 @@ class ImageCaptureHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int? arg_targetRotation, int? arg_flashMode, int? arg_resolutionSelectorId) async { + Future create(int arg_identifier, int? arg_targetRotation, + int? arg_flashMode, int? arg_resolutionSelectorId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageCaptureHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_targetRotation, arg_flashMode, arg_resolutionSelectorId]) as List?; + final List? replyList = await channel.send([ + arg_identifier, + arg_targetRotation, + arg_flashMode, + arg_resolutionSelectorId + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1721,8 +1755,8 @@ class ImageCaptureHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_flashMode]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_flashMode]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1770,8 +1804,8 @@ class ImageCaptureHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_rotation]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_rotation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1804,7 +1838,7 @@ class _ResolutionStrategyHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1822,12 +1856,14 @@ class ResolutionStrategyHostApi { static const MessageCodec codec = _ResolutionStrategyHostApiCodec(); - Future create(int arg_identifier, ResolutionInfo? arg_boundSize, int? arg_fallbackRule) async { + Future create(int arg_identifier, ResolutionInfo? arg_boundSize, + int? arg_fallbackRule) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ResolutionStrategyHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_boundSize, arg_fallbackRule]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_boundSize, arg_fallbackRule]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1855,12 +1891,16 @@ class ResolutionSelectorHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int? arg_resolutionStrategyIdentifier, int? arg_aspectRatioStrategyIdentifier) async { + Future create(int arg_identifier, int? arg_resolutionStrategyIdentifier, + int? arg_aspectRatioStrategyIdentifier) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ResolutionSelectorHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_resolutionStrategyIdentifier, arg_aspectRatioStrategyIdentifier]) as List?; + final List? replyList = await channel.send([ + arg_identifier, + arg_resolutionStrategyIdentifier, + arg_aspectRatioStrategyIdentifier + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1888,12 +1928,16 @@ class AspectRatioStrategyHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int arg_preferredAspectRatio, int arg_fallbackRule) async { + Future create(int arg_identifier, int arg_preferredAspectRatio, + int arg_fallbackRule) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.AspectRatioStrategyHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_preferredAspectRatio, arg_fallbackRule]) as List?; + final List? replyList = await channel.send([ + arg_identifier, + arg_preferredAspectRatio, + arg_fallbackRule + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1926,7 +1970,7 @@ class _CameraStateFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return CameraStateTypeData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1939,7 +1983,8 @@ abstract class CameraStateFlutterApi { void create(int identifier, CameraStateTypeData type, int? errorIdentifier); - static void setup(CameraStateFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(CameraStateFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraStateFlutterApi.create', codec, @@ -1949,12 +1994,13 @@ abstract class CameraStateFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null, expected non-null int.'); - final CameraStateTypeData? arg_type = (args[1] as CameraStateTypeData?); + final CameraStateTypeData? arg_type = + (args[1] as CameraStateTypeData?); assert(arg_type != null, 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null, expected non-null CameraStateTypeData.'); final int? arg_errorIdentifier = (args[2] as int?); @@ -1981,7 +2027,7 @@ class _ExposureStateFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ExposureCompensationRange.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1992,9 +2038,13 @@ class _ExposureStateFlutterApiCodec extends StandardMessageCodec { abstract class ExposureStateFlutterApi { static const MessageCodec codec = _ExposureStateFlutterApiCodec(); - void create(int identifier, ExposureCompensationRange exposureCompensationRange, double exposureCompensationStep); + void create( + int identifier, + ExposureCompensationRange exposureCompensationRange, + double exposureCompensationStep); - static void setup(ExposureStateFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(ExposureStateFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ExposureStateFlutterApi.create', codec, @@ -2004,18 +2054,20 @@ abstract class ExposureStateFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null int.'); - final ExposureCompensationRange? arg_exposureCompensationRange = (args[1] as ExposureCompensationRange?); + final ExposureCompensationRange? arg_exposureCompensationRange = + (args[1] as ExposureCompensationRange?); assert(arg_exposureCompensationRange != null, 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null ExposureCompensationRange.'); final double? arg_exposureCompensationStep = (args[2] as double?); assert(arg_exposureCompensationStep != null, 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null double.'); - api.create(arg_identifier!, arg_exposureCompensationRange!, arg_exposureCompensationStep!); + api.create(arg_identifier!, arg_exposureCompensationRange!, + arg_exposureCompensationStep!); return; }); } @@ -2028,7 +2080,8 @@ abstract class ZoomStateFlutterApi { void create(int identifier, double minZoomRatio, double maxZoomRatio); - static void setup(ZoomStateFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(ZoomStateFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ZoomStateFlutterApi.create', codec, @@ -2038,7 +2091,7 @@ abstract class ZoomStateFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ZoomStateFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.ZoomStateFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2067,12 +2120,16 @@ class ImageAnalysisHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int? arg_targetRotation, int? arg_resolutionSelectorId) async { + Future create(int arg_identifier, int? arg_targetRotation, + int? arg_resolutionSelectorId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageAnalysisHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_targetRotation, arg_resolutionSelectorId]) as List?; + final List? replyList = await channel.send([ + arg_identifier, + arg_targetRotation, + arg_resolutionSelectorId + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2089,12 +2146,14 @@ class ImageAnalysisHostApi { } } - Future setAnalyzer(int arg_identifier, int arg_analyzerIdentifier) async { + Future setAnalyzer( + int arg_identifier, int arg_analyzerIdentifier) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_analyzerIdentifier]) as List?; + await channel.send([arg_identifier, arg_analyzerIdentifier]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2137,8 +2196,8 @@ class ImageAnalysisHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_rotation]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_rotation]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2227,7 +2286,8 @@ abstract class ObserverFlutterApi { void onChanged(int identifier, int valueIdentifier); - static void setup(ObserverFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(ObserverFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ObserverFlutterApi.onChanged', codec, @@ -2237,7 +2297,7 @@ abstract class ObserverFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ObserverFlutterApi.onChanged was null.'); + 'Argument for dev.flutter.pigeon.ObserverFlutterApi.onChanged was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2258,7 +2318,8 @@ abstract class CameraStateErrorFlutterApi { void create(int identifier, int code); - static void setup(CameraStateErrorFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(CameraStateErrorFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraStateErrorFlutterApi.create', codec, @@ -2268,7 +2329,7 @@ abstract class CameraStateErrorFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraStateErrorFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraStateErrorFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2299,7 +2360,7 @@ class _LiveDataHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return LiveDataSupportedTypeData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2322,7 +2383,8 @@ class LiveDataHostApi { 'dev.flutter.pigeon.LiveDataHostApi.observe', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_observerIdentifier]) as List?; + await channel.send([arg_identifier, arg_observerIdentifier]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2361,12 +2423,13 @@ class LiveDataHostApi { } } - Future getValue(int arg_identifier, LiveDataSupportedTypeData arg_type) async { + Future getValue( + int arg_identifier, LiveDataSupportedTypeData arg_type) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.LiveDataHostApi.getValue', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_type]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_type]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2399,7 +2462,7 @@ class _LiveDataFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return LiveDataSupportedTypeData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2412,7 +2475,8 @@ abstract class LiveDataFlutterApi { void create(int identifier, LiveDataSupportedTypeData type); - static void setup(LiveDataFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(LiveDataFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.LiveDataFlutterApi.create', codec, @@ -2422,12 +2486,13 @@ abstract class LiveDataFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null, expected non-null int.'); - final LiveDataSupportedTypeData? arg_type = (args[1] as LiveDataSupportedTypeData?); + final LiveDataSupportedTypeData? arg_type = + (args[1] as LiveDataSupportedTypeData?); assert(arg_type != null, 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null, expected non-null LiveDataSupportedTypeData.'); api.create(arg_identifier!, arg_type!); @@ -2445,7 +2510,8 @@ abstract class AnalyzerFlutterApi { void analyze(int identifier, int imageProxyIdentifier); - static void setup(AnalyzerFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(AnalyzerFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.AnalyzerFlutterApi.create', codec, @@ -2455,7 +2521,7 @@ abstract class AnalyzerFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2474,7 +2540,7 @@ abstract class AnalyzerFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.analyze was null.'); + 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.analyze was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2555,7 +2621,8 @@ abstract class ImageProxyFlutterApi { void create(int identifier, int format, int height, int width); - static void setup(ImageProxyFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(ImageProxyFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageProxyFlutterApi.create', codec, @@ -2565,7 +2632,7 @@ abstract class ImageProxyFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2592,7 +2659,8 @@ abstract class PlaneProxyFlutterApi { void create(int identifier, Uint8List buffer, int pixelStride, int rowStride); - static void setup(PlaneProxyFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(PlaneProxyFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PlaneProxyFlutterApi.create', codec, @@ -2602,7 +2670,7 @@ abstract class PlaneProxyFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2616,7 +2684,8 @@ abstract class PlaneProxyFlutterApi { final int? arg_rowStride = (args[3] as int?); assert(arg_rowStride != null, 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!, arg_buffer!, arg_pixelStride!, arg_rowStride!); + api.create( + arg_identifier!, arg_buffer!, arg_pixelStride!, arg_rowStride!); return; }); } @@ -2642,9 +2711,9 @@ class _QualitySelectorHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); - case 129: + case 129: return VideoQualityData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2662,12 +2731,18 @@ class QualitySelectorHostApi { static const MessageCodec codec = _QualitySelectorHostApiCodec(); - Future create(int arg_identifier, List arg_videoQualityDataList, int? arg_fallbackStrategyId) async { + Future create( + int arg_identifier, + List arg_videoQualityDataList, + int? arg_fallbackStrategyId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.QualitySelectorHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_videoQualityDataList, arg_fallbackStrategyId]) as List?; + final List? replyList = await channel.send([ + arg_identifier, + arg_videoQualityDataList, + arg_fallbackStrategyId + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2684,12 +2759,13 @@ class QualitySelectorHostApi { } } - Future getResolution(int arg_cameraInfoId, VideoQuality arg_quality) async { + Future getResolution( + int arg_cameraInfoId, VideoQuality arg_quality) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.QualitySelectorHostApi.getResolution', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_cameraInfoId, arg_quality.index]) as List?; + final List? replyList = await channel + .send([arg_cameraInfoId, arg_quality.index]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2722,12 +2798,16 @@ class FallbackStrategyHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, VideoQuality arg_quality, VideoResolutionFallbackRule arg_fallbackRule) async { + Future create(int arg_identifier, VideoQuality arg_quality, + VideoResolutionFallbackRule arg_fallbackRule) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FallbackStrategyHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_quality.index, arg_fallbackRule.index]) as List?; + final List? replyList = await channel.send([ + arg_identifier, + arg_quality.index, + arg_fallbackRule.index + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2759,8 +2839,8 @@ class CameraControlHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlHostApi.enableTorch', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_torch]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_torch]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2781,8 +2861,8 @@ class CameraControlHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlHostApi.setZoomRatio', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_ratio]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_ratio]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2799,12 +2879,14 @@ class CameraControlHostApi { } } - Future startFocusAndMetering(int arg_identifier, int arg_focusMeteringActionId) async { + Future startFocusAndMetering( + int arg_identifier, int arg_focusMeteringActionId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_focusMeteringActionId]) as List?; + await channel.send([arg_identifier, arg_focusMeteringActionId]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2848,12 +2930,14 @@ class CameraControlHostApi { } } - Future setExposureCompensationIndex(int arg_identifier, int arg_index) async { + Future setExposureCompensationIndex( + int arg_identifier, int arg_index) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex', codec, + 'dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_index]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_index]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2881,7 +2965,8 @@ abstract class CameraControlFlutterApi { void create(int identifier); - static void setup(CameraControlFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(CameraControlFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlFlutterApi.create', codec, @@ -2891,7 +2976,7 @@ abstract class CameraControlFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraControlFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2919,7 +3004,7 @@ class _FocusMeteringActionHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return MeteringPointInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2937,12 +3022,14 @@ class FocusMeteringActionHostApi { static const MessageCodec codec = _FocusMeteringActionHostApiCodec(); - Future create(int arg_identifier, List arg_meteringPointInfos) async { + Future create(int arg_identifier, + List arg_meteringPointInfos) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FocusMeteringActionHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_meteringPointInfos]) as List?; + await channel.send([arg_identifier, arg_meteringPointInfos]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2972,7 +3059,8 @@ class FocusMeteringResultHostApi { Future isFocusSuccessful(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful', codec, + 'dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -3003,7 +3091,8 @@ abstract class FocusMeteringResultFlutterApi { void create(int identifier); - static void setup(FocusMeteringResultFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(FocusMeteringResultFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FocusMeteringResultFlutterApi.create', codec, @@ -3013,7 +3102,7 @@ abstract class FocusMeteringResultFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FocusMeteringResultFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.FocusMeteringResultFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -3036,12 +3125,14 @@ class MeteringPointHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, double arg_x, double arg_y, double? arg_size) async { + Future create( + int arg_identifier, double arg_x, double arg_y, double? arg_size) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.MeteringPointHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_identifier, arg_x, arg_y, arg_size]) as List?; + await channel.send([arg_identifier, arg_x, arg_y, arg_size]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -3062,8 +3153,7 @@ class MeteringPointHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize', codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send(null) as List?; + final List? replyList = await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -3096,12 +3186,15 @@ class DisplayOrientedMeteringPointFactoryHostApi { static const MessageCodec codec = StandardMessageCodec(); - Future create(int arg_identifier, int arg_cameraInfoId, int arg_width, int arg_height) async { + Future create(int arg_identifier, int arg_cameraInfoId, int arg_width, + int arg_height) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create', codec, + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_cameraInfoId, arg_width, arg_height]) as List?; + final List? replyList = await channel.send( + [arg_identifier, arg_cameraInfoId, arg_width, arg_height]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -3120,7 +3213,8 @@ class DisplayOrientedMeteringPointFactoryHostApi { Future createPoint(int arg_x, int arg_y, int? arg_size) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint', codec, + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_x, arg_y, arg_size]) as List?; @@ -3147,10 +3241,10 @@ class DisplayOrientedMeteringPointFactoryHostApi { Future getDefaultPointSize() async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize', codec, + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send(null) as List?; + final List? replyList = await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', diff --git a/packages/camera/camera_android_camerax/test/camera_control_test.dart b/packages/camera/camera_android_camerax/test/camera_control_test.dart index e0f8fcd3bc1..91007e8afda 100644 --- a/packages/camera/camera_android_camerax/test/camera_control_test.dart +++ b/packages/camera/camera_android_camerax/test/camera_control_test.dart @@ -119,7 +119,7 @@ void main() { .thenAnswer((_) => Future.value(resultId)); expect(await cameraControl.startFocusAndMetering(action), equals(result)); - verify(mockApi.startFocusAndMetering(resultId, actionId)); + verify(mockApi.startFocusAndMetering(cameraControlIdentifier, actionId)); }); test( diff --git a/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart b/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart index 1200d4a6113..657fb1aa3da 100644 --- a/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart +++ b/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart @@ -84,15 +84,17 @@ void main() { final VerificationResult verificationResult = verify(mockApi.create( argThat(equals(instanceManager.getIdentifier(instance))), captureAny)); - final List captureMeteringPointInfos = - verificationResult.captured.single as List; + final List captureMeteringPointInfos = + verificationResult.captured.single as List; expect(captureMeteringPointInfos.length, equals(2)); - expect(captureMeteringPointInfos[0].meteringPointId, + expect(captureMeteringPointInfos[0]!.meteringPointId, equals(mockMeteringPoint1Id)); - expect(captureMeteringPointInfos[0].meteringMode, mockMeteringPoint1Mode); - expect(captureMeteringPointInfos[1].meteringPointId, + expect( + captureMeteringPointInfos[0]!.meteringMode, mockMeteringPoint1Mode); + expect(captureMeteringPointInfos[1]!.meteringPointId, equals(mockMeteringPoint2Id)); - expect(captureMeteringPointInfos[0].meteringMode, mockMeteringPoint2Mode); + expect( + captureMeteringPointInfos[1]!.meteringMode, mockMeteringPoint2Mode); }); }); } diff --git a/packages/camera/camera_android_camerax/test/metering_point_test.dart b/packages/camera/camera_android_camerax/test/metering_point_test.dart index 0e4d66f0637..ba3daae96b1 100644 --- a/packages/camera/camera_android_camerax/test/metering_point_test.dart +++ b/packages/camera/camera_android_camerax/test/metering_point_test.dart @@ -36,8 +36,8 @@ void main() { instanceManager: instanceManager, ); - verifyNever(mockApi.create( - argThat(isA()), argThat(isA()), argThat(isA()))); + verifyNever(mockApi.create(argThat(isA()), argThat(isA()), + argThat(isA()), argThat(isA()))); }); test('create calls create on the Java side', () async { @@ -52,20 +52,14 @@ void main() { const double x = 0.5; const double y = 0.6; const double size = 3; - const int meteringPointIdentifier = 55; - final MeteringPoint meteringPoint = MeteringPoint.detached( + MeteringPoint( x: x, y: y, size: size, instanceManager: instanceManager, ); - instanceManager.addHostCreatedInstance( - meteringPoint, - meteringPointIdentifier, - onCopy: (_) => MeteringPoint.detached(x: x, y: y, size: size), - ); - verify(mockApi.create(meteringPointIdentifier, x, y, size)); + verify(mockApi.create(argThat(isA()), x, y, size)); }); test('getDefaultPointSize returns expected size', () async { diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index 7e329e89676..abb6fad2987 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -14,7 +14,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:camera_android_camerax/src/camerax_library.g.dart'; abstract class TestInstanceManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Clear the native `InstanceManager`. @@ -22,15 +23,19 @@ abstract class TestInstanceManagerHostApi { /// This is typically only used after a hot restart. void clear(); - static void setup(TestInstanceManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestInstanceManagerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message api.clear(); return []; @@ -41,22 +46,27 @@ abstract class TestInstanceManagerHostApi { } abstract class TestJavaObjectHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void dispose(int identifier); - static void setup(TestJavaObjectHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaObjectHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaObjectHostApi.dispose', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -70,7 +80,8 @@ abstract class TestJavaObjectHostApi { } abstract class TestCameraInfoHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); int getSensorRotationDegrees(int identifier); @@ -81,17 +92,22 @@ abstract class TestCameraInfoHostApi { int getZoomState(int identifier); - static void setup(TestCameraInfoHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestCameraInfoHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees', codec, + 'dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -106,11 +122,14 @@ abstract class TestCameraInfoHostApi { 'dev.flutter.pigeon.CameraInfoHostApi.getCameraState', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getCameraState was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getCameraState was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -125,11 +144,14 @@ abstract class TestCameraInfoHostApi { 'dev.flutter.pigeon.CameraInfoHostApi.getExposureState', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getExposureState was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getExposureState was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -144,11 +166,14 @@ abstract class TestCameraInfoHostApi { 'dev.flutter.pigeon.CameraInfoHostApi.getZoomState', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getZoomState was null.'); + 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getZoomState was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -162,24 +187,29 @@ abstract class TestCameraInfoHostApi { } abstract class TestCameraSelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier, int? lensFacing); List filter(int identifier, List cameraInfoIds); - static void setup(TestCameraSelectorHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestCameraSelectorHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraSelectorHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -195,19 +225,24 @@ abstract class TestCameraSelectorHostApi { 'dev.flutter.pigeon.CameraSelectorHostApi.filter', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null.'); + 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null, expected non-null int.'); - final List? arg_cameraInfoIds = (args[1] as List?)?.cast(); + final List? arg_cameraInfoIds = + (args[1] as List?)?.cast(); assert(arg_cameraInfoIds != null, 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null, expected non-null List.'); - final List output = api.filter(arg_identifier!, arg_cameraInfoIds!); + final List output = + api.filter(arg_identifier!, arg_cameraInfoIds!); return [output]; }); } @@ -216,14 +251,16 @@ abstract class TestCameraSelectorHostApi { } abstract class TestProcessCameraProviderHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); Future getInstance(); List getAvailableCameraInfos(int identifier); - int bindToLifecycle(int identifier, int cameraSelectorIdentifier, List useCaseIds); + int bindToLifecycle( + int identifier, int cameraSelectorIdentifier, List useCaseIds); bool isBound(int identifier, int useCaseIdentifier); @@ -231,15 +268,19 @@ abstract class TestProcessCameraProviderHostApi { void unbindAll(int identifier); - static void setup(TestProcessCameraProviderHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestProcessCameraProviderHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message final int output = await api.getInstance(); return [output]; @@ -248,33 +289,42 @@ abstract class TestProcessCameraProviderHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', codec, + 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null, expected non-null int.'); - final List output = api.getAvailableCameraInfos(arg_identifier!); + final List output = + api.getAvailableCameraInfos(arg_identifier!); return [output]; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', codec, + 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -282,10 +332,12 @@ abstract class TestProcessCameraProviderHostApi { final int? arg_cameraSelectorIdentifier = (args[1] as int?); assert(arg_cameraSelectorIdentifier != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null, expected non-null int.'); - final List? arg_useCaseIds = (args[2] as List?)?.cast(); + final List? arg_useCaseIds = + (args[2] as List?)?.cast(); assert(arg_useCaseIds != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null, expected non-null List.'); - final int output = api.bindToLifecycle(arg_identifier!, arg_cameraSelectorIdentifier!, arg_useCaseIds!); + final int output = api.bindToLifecycle( + arg_identifier!, arg_cameraSelectorIdentifier!, arg_useCaseIds!); return [output]; }); } @@ -295,11 +347,14 @@ abstract class TestProcessCameraProviderHostApi { 'dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -307,7 +362,8 @@ abstract class TestProcessCameraProviderHostApi { final int? arg_useCaseIdentifier = (args[1] as int?); assert(arg_useCaseIdentifier != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null, expected non-null int.'); - final bool output = api.isBound(arg_identifier!, arg_useCaseIdentifier!); + final bool output = + api.isBound(arg_identifier!, arg_useCaseIdentifier!); return [output]; }); } @@ -317,16 +373,20 @@ abstract class TestProcessCameraProviderHostApi { 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null, expected non-null int.'); - final List? arg_useCaseIds = (args[1] as List?)?.cast(); + final List? arg_useCaseIds = + (args[1] as List?)?.cast(); assert(arg_useCaseIds != null, 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null, expected non-null List.'); api.unbind(arg_identifier!, arg_useCaseIds!); @@ -339,11 +399,14 @@ abstract class TestProcessCameraProviderHostApi { 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll was null.'); + 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -357,24 +420,29 @@ abstract class TestProcessCameraProviderHostApi { } abstract class TestCameraHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); int getCameraInfo(int identifier); int getCameraControl(int identifier); - static void setup(TestCameraHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestCameraHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraHostApi.getCameraInfo', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraInfo was null.'); + 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraInfo was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -389,11 +457,14 @@ abstract class TestCameraHostApi { 'dev.flutter.pigeon.CameraHostApi.getCameraControl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraControl was null.'); + 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraControl was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -421,7 +492,7 @@ class _TestSystemServicesHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -430,29 +501,37 @@ class _TestSystemServicesHostApiCodec extends StandardMessageCodec { } abstract class TestSystemServicesHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestSystemServicesHostApiCodec(); - Future requestCameraPermissions(bool enableAudio); + Future requestCameraPermissions( + bool enableAudio); String getTempFilePath(String prefix, String suffix); - static void setup(TestSystemServicesHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestSystemServicesHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', codec, + 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions was null.'); + 'Argument for dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions was null.'); final List args = (message as List?)!; final bool? arg_enableAudio = (args[0] as bool?); assert(arg_enableAudio != null, 'Argument for dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions was null, expected non-null bool.'); - final CameraPermissionsErrorData? output = await api.requestCameraPermissions(arg_enableAudio!); + final CameraPermissionsErrorData? output = + await api.requestCameraPermissions(arg_enableAudio!); return [output]; }); } @@ -462,11 +541,14 @@ abstract class TestSystemServicesHostApi { 'dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath was null.'); + 'Argument for dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath was null.'); final List args = (message as List?)!; final String? arg_prefix = (args[0] as String?); assert(arg_prefix != null, @@ -483,26 +565,33 @@ abstract class TestSystemServicesHostApi { } abstract class TestDeviceOrientationManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void startListeningForDeviceOrientationChange(bool isFrontFacing, int sensorOrientation); + void startListeningForDeviceOrientationChange( + bool isFrontFacing, int sensorOrientation); void stopListeningForDeviceOrientationChange(); int getDefaultDisplayRotation(); - static void setup(TestDeviceOrientationManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestDeviceOrientationManagerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null.'); + 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null.'); final List args = (message as List?)!; final bool? arg_isFrontFacing = (args[0] as bool?); assert(arg_isFrontFacing != null, @@ -510,19 +599,24 @@ abstract class TestDeviceOrientationManagerHostApi { final int? arg_sensorOrientation = (args[1] as int?); assert(arg_sensorOrientation != null, 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null, expected non-null int.'); - api.startListeningForDeviceOrientationChange(arg_isFrontFacing!, arg_sensorOrientation!); + api.startListeningForDeviceOrientationChange( + arg_isFrontFacing!, arg_sensorOrientation!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message api.stopListeningForDeviceOrientationChange(); return []; @@ -531,12 +625,16 @@ abstract class TestDeviceOrientationManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', codec, + 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message final int output = api.getDefaultDisplayRotation(); return [output]; @@ -561,7 +659,7 @@ class _TestPreviewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -570,7 +668,8 @@ class _TestPreviewHostApiCodec extends StandardMessageCodec { } abstract class TestPreviewHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestPreviewHostApiCodec(); void create(int identifier, int? rotation, int? resolutionSelectorId); @@ -583,17 +682,21 @@ abstract class TestPreviewHostApi { void setTargetRotation(int identifier, int rotation); - static void setup(TestPreviewHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestPreviewHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PreviewHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.PreviewHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -610,11 +713,14 @@ abstract class TestPreviewHostApi { 'dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider was null.'); + 'Argument for dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -626,12 +732,16 @@ abstract class TestPreviewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture', codec, + 'dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message api.releaseFlutterSurfaceTexture(); return []; @@ -643,11 +753,14 @@ abstract class TestPreviewHostApi { 'dev.flutter.pigeon.PreviewHostApi.getResolutionInfo', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.getResolutionInfo was null.'); + 'Argument for dev.flutter.pigeon.PreviewHostApi.getResolutionInfo was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -662,11 +775,14 @@ abstract class TestPreviewHostApi { 'dev.flutter.pigeon.PreviewHostApi.setTargetRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setTargetRotation was null.'); + 'Argument for dev.flutter.pigeon.PreviewHostApi.setTargetRotation was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -683,7 +799,8 @@ abstract class TestPreviewHostApi { } abstract class TestVideoCaptureHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); int withOutput(int videoOutputId); @@ -692,17 +809,21 @@ abstract class TestVideoCaptureHostApi { void setTargetRotation(int identifier, int rotation); - static void setup(TestVideoCaptureHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestVideoCaptureHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.VideoCaptureHostApi.withOutput', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.withOutput was null.'); + 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.withOutput was null.'); final List args = (message as List?)!; final int? arg_videoOutputId = (args[0] as int?); assert(arg_videoOutputId != null, @@ -717,11 +838,14 @@ abstract class TestVideoCaptureHostApi { 'dev.flutter.pigeon.VideoCaptureHostApi.getOutput', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.getOutput was null.'); + 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.getOutput was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -736,11 +860,14 @@ abstract class TestVideoCaptureHostApi { 'dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation was null.'); + 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -757,10 +884,12 @@ abstract class TestVideoCaptureHostApi { } abstract class TestRecorderHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void create(int identifier, int? aspectRatio, int? bitRate, int? qualitySelectorId); + void create( + int identifier, int? aspectRatio, int? bitRate, int? qualitySelectorId); int getAspectRatio(int identifier); @@ -768,17 +897,21 @@ abstract class TestRecorderHostApi { int prepareRecording(int identifier, String path); - static void setup(TestRecorderHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestRecorderHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecorderHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.RecorderHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -786,7 +919,8 @@ abstract class TestRecorderHostApi { final int? arg_aspectRatio = (args[1] as int?); final int? arg_bitRate = (args[2] as int?); final int? arg_qualitySelectorId = (args[3] as int?); - api.create(arg_identifier!, arg_aspectRatio, arg_bitRate, arg_qualitySelectorId); + api.create(arg_identifier!, arg_aspectRatio, arg_bitRate, + arg_qualitySelectorId); return []; }); } @@ -796,11 +930,14 @@ abstract class TestRecorderHostApi { 'dev.flutter.pigeon.RecorderHostApi.getAspectRatio', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.getAspectRatio was null.'); + 'Argument for dev.flutter.pigeon.RecorderHostApi.getAspectRatio was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -812,14 +949,18 @@ abstract class TestRecorderHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', codec, + 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate was null.'); + 'Argument for dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -834,11 +975,14 @@ abstract class TestRecorderHostApi { 'dev.flutter.pigeon.RecorderHostApi.prepareRecording', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.prepareRecording was null.'); + 'Argument for dev.flutter.pigeon.RecorderHostApi.prepareRecording was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -855,22 +999,27 @@ abstract class TestRecorderHostApi { } abstract class TestPendingRecordingHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); int start(int identifier); - static void setup(TestPendingRecordingHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestPendingRecordingHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PendingRecordingHostApi.start', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PendingRecordingHostApi.start was null.'); + 'Argument for dev.flutter.pigeon.PendingRecordingHostApi.start was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -884,7 +1033,8 @@ abstract class TestPendingRecordingHostApi { } abstract class TestRecordingHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void close(int identifier); @@ -895,17 +1045,21 @@ abstract class TestRecordingHostApi { void stop(int identifier); - static void setup(TestRecordingHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestRecordingHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.RecordingHostApi.close', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.close was null.'); + 'Argument for dev.flutter.pigeon.RecordingHostApi.close was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -920,11 +1074,14 @@ abstract class TestRecordingHostApi { 'dev.flutter.pigeon.RecordingHostApi.pause', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.pause was null.'); + 'Argument for dev.flutter.pigeon.RecordingHostApi.pause was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -939,11 +1096,14 @@ abstract class TestRecordingHostApi { 'dev.flutter.pigeon.RecordingHostApi.resume', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.resume was null.'); + 'Argument for dev.flutter.pigeon.RecordingHostApi.resume was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -958,11 +1118,14 @@ abstract class TestRecordingHostApi { 'dev.flutter.pigeon.RecordingHostApi.stop', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.stop was null.'); + 'Argument for dev.flutter.pigeon.RecordingHostApi.stop was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -976,10 +1139,12 @@ abstract class TestRecordingHostApi { } abstract class TestImageCaptureHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void create(int identifier, int? targetRotation, int? flashMode, int? resolutionSelectorId); + void create(int identifier, int? targetRotation, int? flashMode, + int? resolutionSelectorId); void setFlashMode(int identifier, int flashMode); @@ -987,17 +1152,21 @@ abstract class TestImageCaptureHostApi { void setTargetRotation(int identifier, int rotation); - static void setup(TestImageCaptureHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestImageCaptureHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageCaptureHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1005,7 +1174,8 @@ abstract class TestImageCaptureHostApi { final int? arg_targetRotation = (args[1] as int?); final int? arg_flashMode = (args[2] as int?); final int? arg_resolutionSelectorId = (args[3] as int?); - api.create(arg_identifier!, arg_targetRotation, arg_flashMode, arg_resolutionSelectorId); + api.create(arg_identifier!, arg_targetRotation, arg_flashMode, + arg_resolutionSelectorId); return []; }); } @@ -1015,11 +1185,14 @@ abstract class TestImageCaptureHostApi { 'dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode was null.'); + 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1037,11 +1210,14 @@ abstract class TestImageCaptureHostApi { 'dev.flutter.pigeon.ImageCaptureHostApi.takePicture', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.takePicture was null.'); + 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.takePicture was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1056,11 +1232,14 @@ abstract class TestImageCaptureHostApi { 'dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation was null.'); + 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1091,7 +1270,7 @@ class _TestResolutionStrategyHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1100,22 +1279,28 @@ class _TestResolutionStrategyHostApiCodec extends StandardMessageCodec { } abstract class TestResolutionStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = _TestResolutionStrategyHostApiCodec(); + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = + _TestResolutionStrategyHostApiCodec(); void create(int identifier, ResolutionInfo? boundSize, int? fallbackRule); - static void setup(TestResolutionStrategyHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestResolutionStrategyHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ResolutionStrategyHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ResolutionStrategyHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ResolutionStrategyHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1131,29 +1316,36 @@ abstract class TestResolutionStrategyHostApi { } abstract class TestResolutionSelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void create(int identifier, int? resolutionStrategyIdentifier, int? aspectRatioStrategyIdentifier); + void create(int identifier, int? resolutionStrategyIdentifier, + int? aspectRatioStrategyIdentifier); - static void setup(TestResolutionSelectorHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestResolutionSelectorHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ResolutionSelectorHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ResolutionSelectorHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ResolutionSelectorHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ResolutionSelectorHostApi.create was null, expected non-null int.'); final int? arg_resolutionStrategyIdentifier = (args[1] as int?); final int? arg_aspectRatioStrategyIdentifier = (args[2] as int?); - api.create(arg_identifier!, arg_resolutionStrategyIdentifier, arg_aspectRatioStrategyIdentifier); + api.create(arg_identifier!, arg_resolutionStrategyIdentifier, + arg_aspectRatioStrategyIdentifier); return []; }); } @@ -1162,22 +1354,27 @@ abstract class TestResolutionSelectorHostApi { } abstract class TestAspectRatioStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier, int preferredAspectRatio, int fallbackRule); - static void setup(TestAspectRatioStrategyHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestAspectRatioStrategyHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.AspectRatioStrategyHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1188,7 +1385,8 @@ abstract class TestAspectRatioStrategyHostApi { final int? arg_fallbackRule = (args[2] as int?); assert(arg_fallbackRule != null, 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null, expected non-null int.'); - api.create(arg_identifier!, arg_preferredAspectRatio!, arg_fallbackRule!); + api.create( + arg_identifier!, arg_preferredAspectRatio!, arg_fallbackRule!); return []; }); } @@ -1197,7 +1395,8 @@ abstract class TestAspectRatioStrategyHostApi { } abstract class TestImageAnalysisHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier, int? targetRotation, int? resolutionSelectorId); @@ -1208,24 +1407,29 @@ abstract class TestImageAnalysisHostApi { void setTargetRotation(int identifier, int rotation); - static void setup(TestImageAnalysisHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestImageAnalysisHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageAnalysisHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.create was null, expected non-null int.'); final int? arg_targetRotation = (args[1] as int?); final int? arg_resolutionSelectorId = (args[2] as int?); - api.create(arg_identifier!, arg_targetRotation, arg_resolutionSelectorId); + api.create( + arg_identifier!, arg_targetRotation, arg_resolutionSelectorId); return []; }); } @@ -1235,11 +1439,14 @@ abstract class TestImageAnalysisHostApi { 'dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer was null.'); + 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1257,11 +1464,14 @@ abstract class TestImageAnalysisHostApi { 'dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer was null.'); + 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1276,11 +1486,14 @@ abstract class TestImageAnalysisHostApi { 'dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation was null.'); + 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1297,22 +1510,27 @@ abstract class TestImageAnalysisHostApi { } abstract class TestAnalyzerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier); - static void setup(TestAnalyzerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestAnalyzerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.AnalyzerHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.AnalyzerHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1326,22 +1544,27 @@ abstract class TestAnalyzerHostApi { } abstract class TestObserverHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier); - static void setup(TestObserverHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestObserverHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ObserverHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ObserverHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.ObserverHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1369,7 +1592,7 @@ class _TestLiveDataHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return LiveDataSupportedTypeData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1378,7 +1601,8 @@ class _TestLiveDataHostApiCodec extends StandardMessageCodec { } abstract class TestLiveDataHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestLiveDataHostApiCodec(); void observe(int identifier, int observerIdentifier); @@ -1387,17 +1611,21 @@ abstract class TestLiveDataHostApi { int? getValue(int identifier, LiveDataSupportedTypeData type); - static void setup(TestLiveDataHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestLiveDataHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.LiveDataHostApi.observe', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.observe was null.'); + 'Argument for dev.flutter.pigeon.LiveDataHostApi.observe was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1415,11 +1643,14 @@ abstract class TestLiveDataHostApi { 'dev.flutter.pigeon.LiveDataHostApi.removeObservers', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.removeObservers was null.'); + 'Argument for dev.flutter.pigeon.LiveDataHostApi.removeObservers was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1434,16 +1665,20 @@ abstract class TestLiveDataHostApi { 'dev.flutter.pigeon.LiveDataHostApi.getValue', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null.'); + 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null, expected non-null int.'); - final LiveDataSupportedTypeData? arg_type = (args[1] as LiveDataSupportedTypeData?); + final LiveDataSupportedTypeData? arg_type = + (args[1] as LiveDataSupportedTypeData?); assert(arg_type != null, 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null, expected non-null LiveDataSupportedTypeData.'); final int? output = api.getValue(arg_identifier!, arg_type!); @@ -1455,24 +1690,29 @@ abstract class TestLiveDataHostApi { } abstract class TestImageProxyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); List getPlanes(int identifier); void close(int identifier); - static void setup(TestImageProxyHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestImageProxyHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.ImageProxyHostApi.getPlanes', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyHostApi.getPlanes was null.'); + 'Argument for dev.flutter.pigeon.ImageProxyHostApi.getPlanes was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1487,11 +1727,14 @@ abstract class TestImageProxyHostApi { 'dev.flutter.pigeon.ImageProxyHostApi.close', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyHostApi.close was null.'); + 'Argument for dev.flutter.pigeon.ImageProxyHostApi.close was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1522,9 +1765,9 @@ class _TestQualitySelectorHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ResolutionInfo.decode(readValue(buffer)!); - case 129: + case 129: return VideoQualityData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1533,33 +1776,41 @@ class _TestQualitySelectorHostApiCodec extends StandardMessageCodec { } abstract class TestQualitySelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestQualitySelectorHostApiCodec(); - void create(int identifier, List videoQualityDataList, int? fallbackStrategyId); + void create(int identifier, List videoQualityDataList, + int? fallbackStrategyId); ResolutionInfo getResolution(int cameraInfoId, VideoQuality quality); - static void setup(TestQualitySelectorHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestQualitySelectorHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.QualitySelectorHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null, expected non-null int.'); - final List? arg_videoQualityDataList = (args[1] as List?)?.cast(); + final List? arg_videoQualityDataList = + (args[1] as List?)?.cast(); assert(arg_videoQualityDataList != null, 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null, expected non-null List.'); final int? arg_fallbackStrategyId = (args[2] as int?); - api.create(arg_identifier!, arg_videoQualityDataList!, arg_fallbackStrategyId); + api.create(arg_identifier!, arg_videoQualityDataList!, + arg_fallbackStrategyId); return []; }); } @@ -1569,19 +1820,24 @@ abstract class TestQualitySelectorHostApi { 'dev.flutter.pigeon.QualitySelectorHostApi.getResolution', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null.'); + 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null.'); final List args = (message as List?)!; final int? arg_cameraInfoId = (args[0] as int?); assert(arg_cameraInfoId != null, 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null, expected non-null int.'); - final VideoQuality? arg_quality = args[1] == null ? null : VideoQuality.values[args[1] as int]; + final VideoQuality? arg_quality = + args[1] == null ? null : VideoQuality.values[args[1] as int]; assert(arg_quality != null, 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null, expected non-null VideoQuality.'); - final ResolutionInfo output = api.getResolution(arg_cameraInfoId!, arg_quality!); + final ResolutionInfo output = + api.getResolution(arg_cameraInfoId!, arg_quality!); return [output]; }); } @@ -1590,30 +1846,39 @@ abstract class TestQualitySelectorHostApi { } abstract class TestFallbackStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); - void create(int identifier, VideoQuality quality, VideoResolutionFallbackRule fallbackRule); + void create(int identifier, VideoQuality quality, + VideoResolutionFallbackRule fallbackRule); - static void setup(TestFallbackStrategyHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestFallbackStrategyHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FallbackStrategyHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null int.'); - final VideoQuality? arg_quality = args[1] == null ? null : VideoQuality.values[args[1] as int]; + final VideoQuality? arg_quality = + args[1] == null ? null : VideoQuality.values[args[1] as int]; assert(arg_quality != null, 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null VideoQuality.'); - final VideoResolutionFallbackRule? arg_fallbackRule = args[2] == null ? null : VideoResolutionFallbackRule.values[args[2] as int]; + final VideoResolutionFallbackRule? arg_fallbackRule = args[2] == null + ? null + : VideoResolutionFallbackRule.values[args[2] as int]; assert(arg_fallbackRule != null, 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null VideoResolutionFallbackRule.'); api.create(arg_identifier!, arg_quality!, arg_fallbackRule!); @@ -1625,7 +1890,8 @@ abstract class TestFallbackStrategyHostApi { } abstract class TestCameraControlHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); Future enableTorch(int identifier, bool torch); @@ -1638,17 +1904,21 @@ abstract class TestCameraControlHostApi { Future setExposureCompensationIndex(int identifier, int index); - static void setup(TestCameraControlHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestCameraControlHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CameraControlHostApi.enableTorch', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.enableTorch was null.'); + 'Argument for dev.flutter.pigeon.CameraControlHostApi.enableTorch was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1666,11 +1936,14 @@ abstract class TestCameraControlHostApi { 'dev.flutter.pigeon.CameraControlHostApi.setZoomRatio', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setZoomRatio was null.'); + 'Argument for dev.flutter.pigeon.CameraControlHostApi.setZoomRatio was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1685,14 +1958,18 @@ abstract class TestCameraControlHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering', codec, + 'dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null.'); + 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1700,21 +1977,26 @@ abstract class TestCameraControlHostApi { final int? arg_focusMeteringActionId = (args[1] as int?); assert(arg_focusMeteringActionId != null, 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null, expected non-null int.'); - final int output = await api.startFocusAndMetering(arg_identifier!, arg_focusMeteringActionId!); + final int output = await api.startFocusAndMetering( + arg_identifier!, arg_focusMeteringActionId!); return [output]; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering', codec, + 'dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering was null.'); + 'Argument for dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1726,14 +2008,18 @@ abstract class TestCameraControlHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex', codec, + 'dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null.'); + 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1741,7 +2027,8 @@ abstract class TestCameraControlHostApi { final int? arg_index = (args[1] as int?); assert(arg_index != null, 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null, expected non-null int.'); - final int output = await api.setExposureCompensationIndex(arg_identifier!, arg_index!); + final int output = await api.setExposureCompensationIndex( + arg_identifier!, arg_index!); return [output]; }); } @@ -1764,7 +2051,7 @@ class _TestFocusMeteringActionHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return MeteringPointInfo.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1773,27 +2060,34 @@ class _TestFocusMeteringActionHostApiCodec extends StandardMessageCodec { } abstract class TestFocusMeteringActionHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = _TestFocusMeteringActionHostApiCodec(); + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = + _TestFocusMeteringActionHostApiCodec(); void create(int identifier, List meteringPointInfos); - static void setup(TestFocusMeteringActionHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestFocusMeteringActionHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FocusMeteringActionHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null, expected non-null int.'); - final List? arg_meteringPointInfos = (args[1] as List?)?.cast(); + final List? arg_meteringPointInfos = + (args[1] as List?)?.cast(); assert(arg_meteringPointInfos != null, 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null, expected non-null List.'); api.create(arg_identifier!, arg_meteringPointInfos!); @@ -1805,22 +2099,28 @@ abstract class TestFocusMeteringActionHostApi { } abstract class TestFocusMeteringResultHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); bool isFocusSuccessful(int identifier); - static void setup(TestFocusMeteringResultHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestFocusMeteringResultHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful', codec, + 'dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful was null.'); + 'Argument for dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1834,24 +2134,29 @@ abstract class TestFocusMeteringResultHostApi { } abstract class TestMeteringPointHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier, double x, double y, double? size); double getDefaultPointSize(); - static void setup(TestMeteringPointHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestMeteringPointHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.MeteringPointHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1873,9 +2178,12 @@ abstract class TestMeteringPointHostApi { 'dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message final double output = api.getDefaultPointSize(); return [output]; @@ -1886,7 +2194,8 @@ abstract class TestMeteringPointHostApi { } abstract class TestDisplayOrientedMeteringPointFactoryHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int identifier, int cameraInfoId, int width, int height); @@ -1895,17 +2204,22 @@ abstract class TestDisplayOrientedMeteringPointFactoryHostApi { int getDefaultPointSize(); - static void setup(TestDisplayOrientedMeteringPointFactoryHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestDisplayOrientedMeteringPointFactoryHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create', codec, + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1919,21 +2233,26 @@ abstract class TestDisplayOrientedMeteringPointFactoryHostApi { final int? arg_height = (args[3] as int?); assert(arg_height != null, 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.create was null, expected non-null int.'); - api.create(arg_identifier!, arg_cameraInfoId!, arg_width!, arg_height!); + api.create( + arg_identifier!, arg_cameraInfoId!, arg_width!, arg_height!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint', codec, + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint was null.'); + 'Argument for dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.createPoint was null.'); final List args = (message as List?)!; final int? arg_x = (args[0] as int?); assert(arg_x != null, @@ -1949,12 +2268,16 @@ abstract class TestDisplayOrientedMeteringPointFactoryHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize', codec, + 'dev.flutter.pigeon.DisplayOrientedMeteringPointFactoryHostApi.getDefaultPointSize', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message final int output = api.getDefaultPointSize(); return [output]; From a9af98d965883d780dda82de2ff3897619161173 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Mon, 8 Jan 2024 12:01:09 -0800 Subject: [PATCH 14/24] Fix Java classes --- .../camerax/CameraAndroidCameraxPlugin.java | 2 +- .../camerax/CameraControlHostApiImpl.java | 17 ++++-- .../FocusMeteringActionFlutterApiImpl.java | 53 ------------------- .../FocusMeteringActionHostApiImpl.java | 40 +++++++------- .../FocusMeteringResultFlutterApiImpl.java | 4 +- .../FocusMeteringResultHostApiImpl.java | 1 + .../camerax/MeteringPointHostApiImpl.java | 8 +-- .../camerax/QualitySelectorHostApiImpl.java | 20 +++---- .../camerax/FocusMeteringActionTest.java | 8 +-- 9 files changed, 57 insertions(+), 96 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java index c8046db5af6..6d802bf3516 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java @@ -114,7 +114,7 @@ public void setUp( binaryMessenger, new FallbackStrategyHostApiImpl(instanceManager)); GeneratedCameraXLibrary.QualitySelectorHostApi.setup( binaryMessenger, new QualitySelectorHostApiImpl(instanceManager)); - cameraControlHostApiImpl = new CameraControlHostApiImpl(instanceManager, context); + cameraControlHostApiImpl = new CameraControlHostApiImpl(binaryMessenger, instanceManager, context); GeneratedCameraXLibrary.CameraControlHostApi.setup(binaryMessenger, cameraControlHostApiImpl); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java index 517c69f727c..3808001b6d3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java @@ -8,13 +8,16 @@ import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.camera.core.CameraControl; +import androidx.camera.core.CameraInfo; import androidx.camera.core.FocusMeteringAction; import androidx.camera.core.FocusMeteringResult; import androidx.core.content.ContextCompat; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraControlHostApi; +import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Result; import java.util.Objects; /** @@ -31,6 +34,8 @@ public class CameraControlHostApiImpl implements CameraControlHostApi { @VisibleForTesting public static class CameraControlProxy { Context context; + BinaryMessenger binaryMessenger; + InstanceManager instanceManager; /** Enables or disables the torch of the specified {@link CameraControl} instance. */ @NonNull @@ -88,7 +93,7 @@ public void startFocusAndMetering( @NonNull FocusMeteringAction focusMeteringAction, @NonNull GeneratedCameraXLibrary.Result result) { ListenableFuture focusMeteringResultFuture = - cameraControl.startFocusAndMetering(action); + cameraControl.startFocusAndMetering(focusMeteringAction); Futures.addCallback( focusMeteringResultFuture, @@ -143,7 +148,7 @@ public void setExposureCompensationIndex( setExposureCompensationIndexFuture, new FutureCallback() { public void onSuccess(Integer integerResult) { - result.success(integerResult); + result.success(integerResult.longValue()); } public void onFailure(Throwable t) { @@ -160,8 +165,8 @@ public void onFailure(Throwable t) { * @param instanceManager maintains instances stored to communicate with attached Dart objects */ public CameraControlHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull Context context) { - this(instanceManager, new CameraControlProxy(), context); + @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager, @NonNull Context context) { + this(binaryMessenger, instanceManager, new CameraControlProxy(), context); } /** @@ -173,12 +178,16 @@ public CameraControlHostApiImpl( */ @VisibleForTesting CameraControlHostApiImpl( + @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager, @NonNull CameraControlProxy proxy, @NonNull Context context) { this.instanceManager = instanceManager; this.proxy = proxy; proxy.context = context; + // proxy.startFocusAndMetering needs access these to create FocusMeteringResults as they become available: + proxy.instanceManager = instanceManager; + proxy.binaryMessenger = binaryMessenger; } /** diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java deleted file mode 100644 index 0cbeda860ca..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionFlutterApiImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringActionFlutterApi; - -/** - * Flutter API implementation for {@link FocusMeteringAction}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class FocusMeteringActionFlutterApiImpl { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private FocusMeteringActionFlutterApi focusMeteringActionFlutterApi; - - /** - * Constructs a {@link FocusMeteringActionFlutterApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public FocusMeteringActionFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - focusMeteringActionFlutterApi = new FocusMeteringActionFlutterApi(binaryMessenger); - } - - /** - * Stores the {@link FocusMeteringAction} instance and notifies Dart to create and store a new - * {@link FocusMeteringAction} instance that is attached to this one. If {@code instance} has - * already been added, this method does nothing. - */ - public void create(@NonNull FocusMeteringAction instance, @NonNull Reply callback) { - if (!instanceManager.containsInstance(instance)) { - focusMeteringActionFlutterApi.create( - instanceManager.addHostCreatedInstance(instance), callback); - } - } - - /** Sets the Flutter API used to send messages to Dart. */ - @VisibleForTesting - void setApi(@NonNull FocusMeteringActionFlutterApi api) { - this.focusMeteringActionFlutterApi = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java index a010ee011d1..e7472bded77 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java @@ -6,7 +6,10 @@ import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringActionHostApi; +import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointInfo; import java.util.ArrayList; import java.util.List; @@ -27,30 +30,31 @@ public static class FocusMeteringActionProxy { /** Creates an instance of {@link FocusMeteringAction}. */ public @NonNull FocusMeteringAction create( @NonNull List meteringPoints, @NonNull List meteringPointModes) { - if (meteringPoints.size() != meteringPointModes.size()) { + if (meteringPoints.size() >= 1 && meteringPoints.size() != meteringPointModes.size()) { throw new IllegalArgumentException( - "The number of specified metering points must match the number of specified metering point modes."); + "One metering point must be specified and the number of specified metering points must match the number of specified metering point modes."); } + FocusMeteringAction.Builder focusMeteringActionBuilder; - for (int i = 0; i < meteringPoints.size(); i++) { + // Create builder to potentially add more MeteringPoints to. + MeteringPoint firstMeteringPoint = meteringPoints.get(0); + Integer firstMeteringPointMode = meteringPointModes.get(0); + if (firstMeteringPointMode == null) { + focusMeteringActionBuilder = getFocusMeteringActionBuilder(firstMeteringPoint); + } else { + focusMeteringActionBuilder = getFocusMeteringActionBuilder(firstMeteringPoint, firstMeteringPointMode); + } + + // Add any additional metering points in order as specified by input lists. + for (int i = 1; i < meteringPoints.size(); i++) { MeteringPoint meteringPoint = meteringPoints.get(i); Integer meteringMode = meteringPointModes.get(i); - if (i == 0) { - // On the first iteration, create the builder to add points to. - if (meteringMode == null) { - focusMeteringActionBuilder = getFocusMeteringActionBuilder(meteringPoint); - } else { - focusMeteringActionBuilder = getFocusMeteringActionBuilder(meteringPoint, meteringMode); - } - continue; - } - // For any i(teration) > 0, add metering points in order as specified by input lists. if (meteringMode == null) { - focusMeteringActionBuilder.add(meteringPoint); + focusMeteringActionBuilder.addPoint(meteringPoint); } else { - focusMeteringActionBuilder.add(meteringPoint, meteringMode); + focusMeteringActionBuilder.addPoint(meteringPoint, meteringMode); } } @@ -96,10 +100,10 @@ public FocusMeteringActionHostApiImpl(@NonNull InstanceManager instanceManager) public void create( @NonNull Long identifier, @NonNull List meteringPointInfos) { final List meteringPoints = new ArrayList(); - final List meteringPointModes = new ArrayList(); + final List meteringPointModes = new ArrayList(); for (MeteringPointInfo meteringPointInfo : meteringPointInfos) { - meteringPoint.add(instanceManager.getInstance(meteringPointInfo.getMeteringPointId())); - meteringPointModes.add(meteringPointIngo.getMeteringMode().intValue()); + meteringPoints.add(instanceManager.getInstance(meteringPointInfo.getMeteringPointId())); + meteringPointModes.add(meteringPointInfo.getMeteringMode().intValue()); } instanceManager.addDartCreatedInstance( diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java index 1a5424b543c..3c0ed4c4482 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java @@ -6,8 +6,10 @@ import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; +import androidx.camera.core.FocusMeteringResult; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi; +import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi.Reply; /** * Flutter API implementation for {@link FocusMeteringResult}. @@ -40,7 +42,7 @@ public FocusMeteringResultFlutterApiImpl( */ public void create(@NonNull FocusMeteringResult instance, @NonNull Reply callback) { if (!instanceManager.containsInstance(instance)) { - FocusMeteringResultFlutterApi.create( + focusMeteringResultFlutterApi.create( instanceManager.addHostCreatedInstance(instance), callback); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java index 86a69a5e8dc..2c6c33e0c26 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java @@ -6,6 +6,7 @@ import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; +import androidx.camera.core.FocusMeteringResult; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultHostApi; /** diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java index 5aaef7d294b..a124cdc1178 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java @@ -9,6 +9,7 @@ import androidx.annotation.VisibleForTesting; import androidx.camera.core.MeteringPoint; import androidx.camera.core.MeteringPointFactory; +import androidx.camera.core.SurfaceOrientedMeteringPointFactory; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointHostApi; /** @@ -25,7 +26,8 @@ public class MeteringPointHostApiImpl implements MeteringPointHostApi { @VisibleForTesting public static class MeteringPointProxy { - public void create(@NonNull Double x, @NonNull Double y, @Nullable Double size) { + @NonNull + public MeteringPoint create(@NonNull Double x, @NonNull Double y, @Nullable Double size) { SurfaceOrientedMeteringPointFactory factory = getSurfaceOrientedMeteringPointFactory(1f, 1f); if (size == null) { return factory.createPoint(x.floatValue(), y.floatValue()); @@ -36,7 +38,7 @@ public void create(@NonNull Double x, @NonNull Double y, @Nullable Double size) @VisibleForTesting @NonNull - public FocusMeteringAction.Builder getSurfaceOrientedMeteringPointFactory( + public SurfaceOrientedMeteringPointFactory getSurfaceOrientedMeteringPointFactory( float width, float height) { return new SurfaceOrientedMeteringPointFactory(width, height); } @@ -78,6 +80,6 @@ public void create( @Override @NonNull public Double getDefaultPointSize() { - return (Double) proxy.getDefaultPointSize; + return (double) proxy.getDefaultPointSize(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java index 9ea31ed1ad3..675225454c5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java @@ -58,16 +58,6 @@ public static class QualitySelectorProxy { ? QualitySelector.fromOrderedList(qualityList, fallbackStrategy) : QualitySelector.fromOrderedList(qualityList); } - - public @NonNull ResolutionInfo getResolution( - @NonNull CameraInfo cameraInfo, @NonNull VideoQuality quality) { - final Size result = - QualitySelector.getResolution(cameraInfo, getQualityFromVideoQuality(quality)); - return new ResolutionInfo.Builder() - .setWidth(Long.valueOf(result.getWidth())) - .setHeight(Long.valueOf(result.getHeight())) - .build(); - } } /** @@ -116,8 +106,14 @@ public void create( @Override public @NonNull ResolutionInfo getResolution( @NonNull Long cameraInfoIdentifier, @NonNull VideoQuality quality) { - return proxy.getResolution( - Objects.requireNonNull(instanceManager.getInstance(cameraInfoIdentifier)), quality); + final Size result = + QualitySelector.getResolution( + Objects.requireNonNull(instanceManager.getInstance(cameraInfoIdentifier)), + getQualityFromVideoQuality(quality)); + return new ResolutionInfo.Builder() + .setWidth(Long.valueOf(result.getWidth())) + .setHeight(Long.valueOf(result.getHeight())) + .build(); } /** diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index 618e8859465..364cd867965 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -82,8 +82,8 @@ public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThat hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos); - verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint2, mockMeteringPoint2Mode)); - verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint3)); + verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint2, mockMeteringPoint2Mode)); + verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint3)); assertEquals(instanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); } @@ -132,8 +132,8 @@ public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThat hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos); - verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint2, mockMeteringPoint2Mode)); - verify(mockFocusMeteringActionBuilder.add(mockMeteringPoint3)); + verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint2, mockMeteringPoint2Mode)); + verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint3)); assertEquals(instanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); } } From 4af22665fd4d9fb92b7afd197d7774e923c55ea3 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Mon, 8 Jan 2024 13:04:52 -0800 Subject: [PATCH 15/24] Get tests running --- .../plugins/camerax/CameraControlTest.java | 20 ++--- .../camerax/FocusMeteringActionTest.java | 79 +++++++++++-------- .../camerax/FocusMeteringResultTest.java | 15 ++-- .../plugins/camerax/MeteringPointTest.java | 35 ++++---- 4 files changed, 87 insertions(+), 62 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index f0b3b61040c..db7868cd6f6 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -13,6 +13,8 @@ import android.content.Context; import androidx.camera.core.CameraControl; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.FocusMeteringResult; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -51,7 +53,7 @@ public void tearDown() { public void enableTorch_turnsTorchModeOnAndOffAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 88L; final boolean enableTorch = true; @@ -101,7 +103,7 @@ public void enableTorch_turnsTorchModeOnAndOffAsExpected() { public void setZoomRatio_setsZoomAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 33L; final Double zoomRatio = 0.2D; @@ -152,7 +154,7 @@ public void setZoomRatio_setsZoomAsExpected() { public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 90L; final FocusMeteringAction mockAction = mock(FocusMeteringAction.class); final Long mockActionId = 44L; @@ -187,12 +189,12 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { FutureCallback successfulCallback = futureCallbackCaptor.getValue(); - successfulFutureCallback.onSuccess(mockResult); + successfulCallback.onSuccess(mockResult); verify(successfulMockResult).success(mockResultId); // Test failed behavior. @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result failedMockResult = + final GeneratedCameraXLibrary.Result failedMockResult = mock(GeneratedCameraXLibrary.Result.class); final Throwable testThrowable = new Throwable(); cameraControlHostApiImpl.startFocusAndMetering( @@ -214,7 +216,7 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 8L; @SuppressWarnings("unchecked") @@ -267,7 +269,7 @@ public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 53L; final Long index = 2L; @@ -299,8 +301,8 @@ public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected FutureCallback successfulCallback = futureCallbackCaptor.getValue(); final Integer fakeResult = 4; - successfulFutureCallback.onSuccess(fakeResult); - verify(successfulMockResult).success(fakeResult); + successfulCallback.onSuccess(fakeResult); + verify(successfulMockResult).success(fakeResult.longValue()); // Test failed behavior. @SuppressWarnings("unchecked") diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index 364cd867965..c13aa1c1a6b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -4,13 +4,18 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointInfo; +import java.util.Arrays; +import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -38,7 +43,7 @@ public void tearDown() { } @Test - public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatHasMode() { + public void create_createsExpectedFocusMeteringActionWithInitialPointThatHasMode() { FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); FocusMeteringActionHostApiImpl hostApi = @@ -47,33 +52,38 @@ public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThat FocusMeteringAction.Builder mockFocusMeteringActionBuilder = mock(FocusMeteringAction.Builder.class); - MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); - MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); - MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); - Long mockMeteringPoint1Id = 47L; - Long mockMeteringPoint2Id = 56L; - Long mockMeteringPoint3Id = 99L; - int mockMeteringPoint1Mode = FocusMeteringAction.FLAG_AE; - int mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; + final MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); + final MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); + final MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); + final Long mockMeteringPoint1Id = 47L; + final Long mockMeteringPoint2Id = 56L; + final Long mockMeteringPoint3Id = 99L; + final Integer mockMeteringPoint1Mode = FocusMeteringAction.FLAG_AE; + final Integer mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; MeteringPointInfo fakeMeteringPointInfo1 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint1Id) - .setMeteringMode(mockMeteringPoint1Mode); + .setMeteringMode(mockMeteringPoint1Mode.longValue()) + .build(); + MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint2Id) - .setMeteringMode(mockMeteringPoint2Mode); + .setMeteringMode(mockMeteringPoint2Mode.longValue()) + .build(); + MeteringPointInfo fakeMeteringPointInfo3 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint3Id) - .setMeteringMode(null); + .setMeteringMode(null) + .build(); - instanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); - instanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); - instanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); + testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); + testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); + testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); - when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1, mockMeteringPoint2)) + when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1, mockMeteringPoint1Id.intValue())) .thenReturn(mockFocusMeteringActionBuilder); when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); @@ -84,12 +94,12 @@ public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThat verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint2, mockMeteringPoint2Mode)); verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint3)); - assertEquals(instanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); + assertEquals(testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); } @Test public void - hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { + create_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); FocusMeteringActionHostApiImpl hostApi = @@ -98,30 +108,35 @@ public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThat FocusMeteringAction.Builder mockFocusMeteringActionBuilder = mock(FocusMeteringAction.Builder.class); - MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); - MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); - MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); - Long mockMeteringPoint1Id = 47L; - Long mockMeteringPoint2Id = 56L; - Long mockMeteringPoint3Id = 99L; - int mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; + final MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); + final MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); + final MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); + final Long mockMeteringPoint1Id = 47L; + final Long mockMeteringPoint2Id = 56L; + final Long mockMeteringPoint3Id = 99L; + final Integer mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; MeteringPointInfo fakeMeteringPointInfo1 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint1Id) - .setMeteringMode(null); + .setMeteringMode(null) + .build(); + MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint2Id) - .setMeteringMode(mockMeteringPoint2Mode); + .setMeteringMode(mockMeteringPoint2Mode.longValue()) + .build(); MeteringPointInfo fakeMeteringPointInfo3 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint3Id) - .setMeteringMode(null); + .setMeteringMode(null) + .build(); + - instanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); - instanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); - instanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); + testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); + testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); + testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1)) .thenReturn(mockFocusMeteringActionBuilder); @@ -134,6 +149,6 @@ public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThat verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint2, mockMeteringPoint2Mode)); verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint3)); - assertEquals(instanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); + assertEquals(testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java index 8c99497c221..845e64c6699 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java @@ -4,6 +4,7 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; @@ -14,6 +15,7 @@ import android.content.Context; import androidx.camera.core.FocusMeteringResult; import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi; import java.util.Objects; import org.junit.After; import org.junit.Before; @@ -28,6 +30,7 @@ public class FocusMeteringResultTest { @Mock public BinaryMessenger mockBinaryMessenger; @Mock public FocusMeteringResult focusMeteringResult; + @Mock public FocusMeteringResultFlutterApi mockFlutterApi; InstanceManager testInstanceManager; @@ -44,7 +47,7 @@ public void tearDown() { @Test public void isFocusSuccessful_returnsExpectedResult() { final FocusMeteringResultHostApiImpl focusMeteringResultHostApiImpl = - new FocusMeteringResultHostApiImpl(testInstanceManager, mock(Context.class)); + new FocusMeteringResultHostApiImpl(testInstanceManager); final Long focusMeteringResultIdentifier = 98L; final boolean result = true; @@ -58,14 +61,16 @@ public void isFocusSuccessful_returnsExpectedResult() { @Test public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { - final FocusMeteringResultFlutterApiImpl spyFlutterApi = - spy(new FocusMeteringResultFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); + final FocusMeteringResultFlutterApiImpl flutterApi = + new FocusMeteringResultFlutterApiImpl(mockBinaryMessenger, testInstanceManager); - spyFlutterApi.create(focusMeteringResult, reply -> {}); + flutterApi.setApi(mockFlutterApi); + flutterApi.create(focusMeteringResult, reply -> {}); final long focusMeteringResultIdentifier = Objects.requireNonNull( testInstanceManager.getIdentifierForStrongReference(focusMeteringResult)); - verify(spyFlutterApi).create(eq(focusMeteringResultIdentifier), any()); + + verify(mockFlutterApi).create(eq(focusMeteringResultIdentifier), any()); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java index 6cdd476c53a..d847490273a 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java @@ -4,6 +4,7 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -11,6 +12,7 @@ import androidx.camera.core.MeteringPoint; import androidx.camera.core.MeteringPointFactory; +import androidx.camera.core.SurfaceOrientedMeteringPointFactory; import io.flutter.plugin.common.BinaryMessenger; import org.junit.After; import org.junit.Before; @@ -21,6 +23,7 @@ import org.mockito.Mockito; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; +import org.mockito.stubbing.Answer; public class MeteringPointTest { @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); @@ -46,24 +49,24 @@ public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified() { spy(new MeteringPointHostApiImpl.MeteringPointProxy()); MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager); final Long meteringPointIdentifier = 78L; - final Long x = 0.3; - final Long y = 0.2; - final Long size = 6; - final float surfaceWidth = 1f; - final float surfaceHeight = 1f; + final Float x = 0.3f; + final Float y = 0.2f; + final Float size = 6f; + final Float surfaceWidth = 1f; + final Float surfaceHeight = 1f; SurfaceOrientedMeteringPointFactory mockSurfaceOrientedMeteringPointFactory = mock(SurfaceOrientedMeteringPointFactory.class); when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)) .thenReturn(mockSurfaceOrientedMeteringPointFactory); when(mockSurfaceOrientedMeteringPointFactory.createPoint( - x.floatValue(), y.floatValue(), size.floatValue())) + x, y, size)) .thenReturn(meteringPoint); - hostApi.create(meteringPointIdentifier, x, y, size); + hostApi.create(meteringPointIdentifier, x.doubleValue(), y.doubleValue(), size.doubleValue()); verify(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y, size)); - assertEquals(instanceManager.getInstance(meteringPointIdentifier), meteringPoint); + assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); } @Test @@ -72,22 +75,22 @@ public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified() { spy(new MeteringPointHostApiImpl.MeteringPointProxy()); MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager); final Long meteringPointIdentifier = 78L; - final Long x = 0.3; - final Long y = 0.2; - final float surfaceWidth = 1f; - final float surfaceHeight = 1f; + final Float x = 0.3f; + final Float y = 0.2f; + final Float surfaceWidth = 1f; + final Float surfaceHeight = 1f; SurfaceOrientedMeteringPointFactory mockSurfaceOrientedMeteringPointFactory = mock(SurfaceOrientedMeteringPointFactory.class); when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)) .thenReturn(mockSurfaceOrientedMeteringPointFactory); - when(mockSurfaceOrientedMeteringPointFactory.createPoint(x.floatValue(), y.floatValue())) + when(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y)) .thenReturn(meteringPoint); - hostApi.create(meteringPointIdentifier, x, y, null); + hostApi.create(meteringPointIdentifier, x.doubleValue(), y.doubleValue(), null); verify(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y)); - assertEquals(instanceManager.getInstance(meteringPointIdentifier), meteringPoint); + assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); } @Test @@ -104,7 +107,7 @@ public void getDefaultPointSize_returnsExpectedSize() { mockedMeteringPointFactory .when(() -> MeteringPointFactory.getDefaultPointSize()) - .thenAnswer((Answer) invocation -> defaultPointSize.floatValue()); + .thenAnswer((Answer) invocation -> defaultPointSize.floatValue()); assertEquals(meteringPointHostApiImpl.getDefaultPointSize(), defaultPointSize); mockedMeteringPointFactory.verify(() -> MeteringPointFactory.getDefaultPointSize()); From fb7927b69cc77ba3735a14145bd012c33b8fd901 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Mon, 8 Jan 2024 15:45:17 -0800 Subject: [PATCH 16/24] Fix java tests --- .../camerax/CameraAndroidCameraxPlugin.java | 3 +- .../camerax/CameraControlHostApiImpl.java | 5 +-- .../FocusMeteringActionHostApiImpl.java | 8 +++-- .../plugins/camerax/CameraControlTest.java | 15 +++++--- .../camerax/FocusMeteringActionTest.java | 35 ++++++++++--------- .../camerax/FocusMeteringResultTest.java | 3 -- .../plugins/camerax/MeteringPointTest.java | 15 ++++---- 7 files changed, 44 insertions(+), 40 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java index 6d802bf3516..7c6e94520d1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java @@ -114,7 +114,8 @@ public void setUp( binaryMessenger, new FallbackStrategyHostApiImpl(instanceManager)); GeneratedCameraXLibrary.QualitySelectorHostApi.setup( binaryMessenger, new QualitySelectorHostApiImpl(instanceManager)); - cameraControlHostApiImpl = new CameraControlHostApiImpl(binaryMessenger, instanceManager, context); + cameraControlHostApiImpl = + new CameraControlHostApiImpl(binaryMessenger, instanceManager, context); GeneratedCameraXLibrary.CameraControlHostApi.setup(binaryMessenger, cameraControlHostApiImpl); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java index 3808001b6d3..d31f8fe8409 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java @@ -8,7 +8,6 @@ import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.camera.core.CameraControl; -import androidx.camera.core.CameraInfo; import androidx.camera.core.FocusMeteringAction; import androidx.camera.core.FocusMeteringResult; import androidx.core.content.ContextCompat; @@ -165,7 +164,9 @@ public void onFailure(Throwable t) { * @param instanceManager maintains instances stored to communicate with attached Dart objects */ public CameraControlHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager, @NonNull Context context) { + @NonNull BinaryMessenger binaryMessenger, + @NonNull InstanceManager instanceManager, + @NonNull Context context) { this(binaryMessenger, instanceManager, new CameraControlProxy(), context); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java index e7472bded77..3dc0d8e9720 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java @@ -41,9 +41,10 @@ public static class FocusMeteringActionProxy { MeteringPoint firstMeteringPoint = meteringPoints.get(0); Integer firstMeteringPointMode = meteringPointModes.get(0); if (firstMeteringPointMode == null) { - focusMeteringActionBuilder = getFocusMeteringActionBuilder(firstMeteringPoint); + focusMeteringActionBuilder = getFocusMeteringActionBuilder(firstMeteringPoint); } else { - focusMeteringActionBuilder = getFocusMeteringActionBuilder(firstMeteringPoint, firstMeteringPointMode); + focusMeteringActionBuilder = + getFocusMeteringActionBuilder(firstMeteringPoint, firstMeteringPointMode); } // Add any additional metering points in order as specified by input lists. @@ -103,7 +104,8 @@ public void create( final List meteringPointModes = new ArrayList(); for (MeteringPointInfo meteringPointInfo : meteringPointInfos) { meteringPoints.add(instanceManager.getInstance(meteringPointInfo.getMeteringPointId())); - meteringPointModes.add(meteringPointInfo.getMeteringMode().intValue()); + Long meteringPointMode = meteringPointInfo.getMeteringMode(); + meteringPointModes.add(meteringPointMode == null ? null : meteringPointMode.intValue()); } instanceManager.addDartCreatedInstance( diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index db7868cd6f6..5f547abacbc 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -53,7 +53,8 @@ public void tearDown() { public void enableTorch_turnsTorchModeOnAndOffAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl( + mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 88L; final boolean enableTorch = true; @@ -103,7 +104,8 @@ public void enableTorch_turnsTorchModeOnAndOffAsExpected() { public void setZoomRatio_setsZoomAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl( + mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 33L; final Double zoomRatio = 0.2D; @@ -154,7 +156,8 @@ public void setZoomRatio_setsZoomAsExpected() { public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl( + mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 90L; final FocusMeteringAction mockAction = mock(FocusMeteringAction.class); final Long mockActionId = 44L; @@ -216,7 +219,8 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl( + mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 8L; @SuppressWarnings("unchecked") @@ -269,7 +273,8 @@ public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl(mockBinaryMessenger, testInstanceManager, mock(Context.class)); + new CameraControlHostApiImpl( + mockBinaryMessenger, testInstanceManager, mock(Context.class)); final Long cameraControlIdentifier = 53L; final Long index = 2L; diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index c13aa1c1a6b..0c1f076c877 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -43,11 +43,11 @@ public void tearDown() { } @Test - public void create_createsExpectedFocusMeteringActionWithInitialPointThatHasMode() { + public void hostApiCreatecreatesExpectedFocusMeteringActionWithInitialPointThatHasMode() { FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); FocusMeteringActionHostApiImpl hostApi = - new FocusMeteringActionHostApiImpl(testInstanceManager); + new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); final Long focusMeteringActionIdentifier = 43L; FocusMeteringAction.Builder mockFocusMeteringActionBuilder = @@ -65,13 +65,13 @@ public void create_createsExpectedFocusMeteringActionWithInitialPointThatHasMode new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint1Id) .setMeteringMode(mockMeteringPoint1Mode.longValue()) - .build(); + .build(); MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint2Id) .setMeteringMode(mockMeteringPoint2Mode.longValue()) - .build(); + .build(); MeteringPointInfo fakeMeteringPointInfo3 = new MeteringPointInfo.Builder() @@ -83,7 +83,8 @@ public void create_createsExpectedFocusMeteringActionWithInitialPointThatHasMode testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); - when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1, mockMeteringPoint1Id.intValue())) + when(proxySpy.getFocusMeteringActionBuilder( + mockMeteringPoint1, mockMeteringPoint1Mode.intValue())) .thenReturn(mockFocusMeteringActionBuilder); when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); @@ -92,18 +93,18 @@ public void create_createsExpectedFocusMeteringActionWithInitialPointThatHasMode hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos); - verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint2, mockMeteringPoint2Mode)); - verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint3)); - assertEquals(testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); + verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint2, mockMeteringPoint2Mode); + verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint3); + assertEquals( + testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); } @Test - public void - create_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { + public void hostApiCreatecreatesExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); FocusMeteringActionHostApiImpl hostApi = - new FocusMeteringActionHostApiImpl(testInstanceManager); + new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); final Long focusMeteringActionIdentifier = 43L; FocusMeteringAction.Builder mockFocusMeteringActionBuilder = @@ -120,7 +121,7 @@ public void create_createsExpectedFocusMeteringActionWithInitialPointThatHasMode new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint1Id) .setMeteringMode(null) - .build(); + .build(); MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder() @@ -131,8 +132,7 @@ public void create_createsExpectedFocusMeteringActionWithInitialPointThatHasMode new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint3Id) .setMeteringMode(null) - .build(); - + .build(); testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); @@ -147,8 +147,9 @@ public void create_createsExpectedFocusMeteringActionWithInitialPointThatHasMode hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos); - verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint2, mockMeteringPoint2Mode)); - verify(mockFocusMeteringActionBuilder.addPoint(mockMeteringPoint3)); - assertEquals(testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); + verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint2, mockMeteringPoint2Mode); + verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint3); + assertEquals( + testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java index 845e64c6699..dae86557b45 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java @@ -7,12 +7,9 @@ import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.content.Context; import androidx.camera.core.FocusMeteringResult; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi; diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java index d847490273a..f245eb53124 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java @@ -47,7 +47,7 @@ public void tearDown() { public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified() { MeteringPointHostApiImpl.MeteringPointProxy proxySpy = spy(new MeteringPointHostApiImpl.MeteringPointProxy()); - MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager); + MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager, proxySpy); final Long meteringPointIdentifier = 78L; final Float x = 0.3f; final Float y = 0.2f; @@ -59,13 +59,11 @@ public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified() { when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)) .thenReturn(mockSurfaceOrientedMeteringPointFactory); - when(mockSurfaceOrientedMeteringPointFactory.createPoint( - x, y, size)) - .thenReturn(meteringPoint); + when(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y, size)).thenReturn(meteringPoint); hostApi.create(meteringPointIdentifier, x.doubleValue(), y.doubleValue(), size.doubleValue()); - verify(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y, size)); + verify(mockSurfaceOrientedMeteringPointFactory).createPoint(x, y, size); assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); } @@ -73,7 +71,7 @@ public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified() { public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified() { MeteringPointHostApiImpl.MeteringPointProxy proxySpy = spy(new MeteringPointHostApiImpl.MeteringPointProxy()); - MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager); + MeteringPointHostApiImpl hostApi = new MeteringPointHostApiImpl(testInstanceManager, proxySpy); final Long meteringPointIdentifier = 78L; final Float x = 0.3f; final Float y = 0.2f; @@ -84,12 +82,11 @@ public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified() { when(proxySpy.getSurfaceOrientedMeteringPointFactory(surfaceWidth, surfaceHeight)) .thenReturn(mockSurfaceOrientedMeteringPointFactory); - when(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y)) - .thenReturn(meteringPoint); + when(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y)).thenReturn(meteringPoint); hostApi.create(meteringPointIdentifier, x.doubleValue(), y.doubleValue(), null); - verify(mockSurfaceOrientedMeteringPointFactory.createPoint(x, y)); + verify(mockSurfaceOrientedMeteringPointFactory).createPoint(x, y); assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); } From b5e974c2f851950dfb1329787c2b1c646c51050d Mon Sep 17 00:00:00 2001 From: camsim99 Date: Mon, 8 Jan 2024 15:47:43 -0800 Subject: [PATCH 17/24] Bump version --- packages/camera/camera_android_camerax/CHANGELOG.md | 4 ++++ packages/camera/camera_android_camerax/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index af2488eb669..50cdde1b377 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.0+26 + +* Wraps CameraX classes needed to implement setting focus and exposure points and exposure offset. + ## 0.5.0+25 * Implements `lockCaptureOrientation` and `unlockCaptureOrientation`. diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index e4332e9e54e..8ec9f0369a4 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.5.0+25 +version: 0.5.0+26 environment: sdk: ">=3.0.0 <4.0.0" From ba95c41b16f8448e56eddb4157a85c59912e536f Mon Sep 17 00:00:00 2001 From: camsim99 Date: Mon, 8 Jan 2024 16:24:15 -0800 Subject: [PATCH 18/24] Self review --- .../plugins/camerax/CameraControlHostApiImpl.java | 8 ++++---- .../plugins/camerax/MeteringPointHostApiImpl.java | 11 +++++++++++ .../plugins/camerax/FocusMeteringActionTest.java | 3 --- .../lib/src/camera_control.dart | 15 +++++++++------ .../lib/src/focus_metering_action.dart | 6 ++---- .../lib/src/metering_point.dart | 14 ++++++++------ .../pigeons/camerax_library.dart | 9 +++++---- .../test/camera_control_test.dart | 2 +- 8 files changed, 40 insertions(+), 28 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java index d31f8fe8409..1c1a48b5ea1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java @@ -111,7 +111,7 @@ public void onFailure(Throwable t) { ContextCompat.getMainExecutor(context)); } - /** Cancels current {@code FocusMeteringAction} and clears AF/AE/AWB regions. */ + /** Cancels current {@code FocusMeteringAction} and clears auto focus/auto exposure/auto white balance regions. */ public void cancelFocusAndMetering( @NonNull CameraControl cameraControl, @NonNull Result result) { ListenableFuture cancelFocusAndMeteringFuture = cameraControl.cancelFocusAndMetering(); @@ -131,10 +131,10 @@ public void onFailure(Throwable t) { } /** - * Sets the exposure compensation index for the specified {@CameraControl} instance and returns + * Sets the exposure compensation index for the specified {@link CameraControl} instance and returns * the new target exposure value. * - *

The exposure compensation value to set on the camera which must be within the range of the + *

The exposure compensation value set on the camera must be within the range of * {@code ExposureState#getExposureCompensationRange()} for the current {@code ExposureState} * for the call to succeed. */ @@ -186,7 +186,7 @@ public CameraControlHostApiImpl( this.instanceManager = instanceManager; this.proxy = proxy; proxy.context = context; - // proxy.startFocusAndMetering needs access these to create FocusMeteringResults as they become available: + // proxy.startFocusAndMetering needs to access these to create a FocusMeteringResult when it becomes available: proxy.instanceManager = instanceManager; proxy.binaryMessenger = binaryMessenger; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java index a124cdc1178..79ef88662f9 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java @@ -26,6 +26,13 @@ public class MeteringPointHostApiImpl implements MeteringPointHostApi { @VisibleForTesting public static class MeteringPointProxy { + /** + * Creates a surface oriented {@link MeteringPoint} with the specified x, y, and size. + * + * A {@link SurfaceOrientedMeteringPointFactory} is used to construct the {@link MeteringPoint} + * because underlying the camera preview that this plugin uses is a Flutter texture that is backed + * by a {@link Surface} created by the Flutter Android embedding. + */ @NonNull public MeteringPoint create(@NonNull Double x, @NonNull Double y, @Nullable Double size) { SurfaceOrientedMeteringPointFactory factory = getSurfaceOrientedMeteringPointFactory(1f, 1f); @@ -43,6 +50,10 @@ public SurfaceOrientedMeteringPointFactory getSurfaceOrientedMeteringPointFactor return new SurfaceOrientedMeteringPointFactory(width, height); } + /** + * Returns the default point size of the {@link MeteringPoint} width and height, which is a normalized + * percentage of the sensor width/height. + */ @NonNull public float getDefaultPointSize() { return MeteringPointFactory.getDefaultPointSize(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index 0c1f076c877..64db8054161 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -66,13 +66,11 @@ public void hostApiCreatecreatesExpectedFocusMeteringActionWithInitialPointThatH .setMeteringPointId(mockMeteringPoint1Id) .setMeteringMode(mockMeteringPoint1Mode.longValue()) .build(); - MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint2Id) .setMeteringMode(mockMeteringPoint2Mode.longValue()) .build(); - MeteringPointInfo fakeMeteringPointInfo3 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint3Id) @@ -122,7 +120,6 @@ public void hostApiCreatecreatesExpectedFocusMeteringActionWithInitialPointThatD .setMeteringPointId(mockMeteringPoint1Id) .setMeteringMode(null) .build(); - MeteringPointInfo fakeMeteringPointInfo2 = new MeteringPointInfo.Builder() .setMeteringPointId(mockMeteringPoint2Id) diff --git a/packages/camera/camera_android_camerax/lib/src/camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera_control.dart index 2aef6e18c98..48ec4ff4d42 100644 --- a/packages/camera/camera_android_camerax/lib/src/camera_control.dart +++ b/packages/camera/camera_android_camerax/lib/src/camera_control.dart @@ -53,23 +53,26 @@ class CameraControl extends JavaObject { /// Starts a focus and metering action configured by the [FocusMeteringAction]. /// - /// Will trigger an auto focus action and enable auto focus/auto exposure - /// /auto white balance metering regions. + /// Will trigger an auto focus action and enable auto focus/auto exposure/ + /// auto white balance metering regions. + /// + /// Returns null if focus and metering could not be started. Future startFocusAndMetering( FocusMeteringAction action) { return _api.startFocusAndMeteringFromInstance(this, action); } - /// Cancels current [FocusMeteringAction] and clears AF/AE/AWB regions. + /// Cancels current [FocusMeteringAction] and clears auto focus/auto exposure/ + /// auto white balance regions. Future cancelFocusAndMetering() => _api.cancelFocusAndMeteringFromInstance(this); /// Sets the exposure compensation value for related [Camera] and returns the /// new target exposure value. /// - /// The exposure compensation value to set on the camera which must be - /// within the range of the [ExposureState]'s `exposureCompensationRange` for - /// the call to succeed. + /// The exposure compensation value set on the camera must be within the range + /// of the current [ExposureState]'s `exposureCompensationRange` for the call + /// to succeed. /// /// Returns null if the exposure compensation index failed to be set. Future setExposureCompensationIndex(int index) async { diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart index 30e347f0326..6d9ebd97f01 100644 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart @@ -5,7 +5,6 @@ import 'package:flutter/services.dart' show BinaryMessenger; import 'package:meta/meta.dart' show immutable; -import 'android_camera_camerax_flutter_api_impls.dart'; import 'camerax_library.g.dart'; import 'instance_manager.dart'; import 'java_object.dart'; @@ -28,7 +27,6 @@ class FocusMeteringAction extends JavaObject { ) { _api = _FocusMeteringActionHostApiImpl( binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); _api.createFromInstance(this, meteringPointInfos); } @@ -90,8 +88,8 @@ class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { /// Maintains instances stored to communicate with native language objects. late final InstanceManager instanceManager; - /// Creates a [FocusMeteringAction] instance with the flash mode and target resolution - /// if specified. + /// Creates a [FocusMeteringAction] instance with the specified list of + /// [MeteringPoint]s and their modes in order of descending priority. void createFromInstance( FocusMeteringAction instance, List<(MeteringPoint meteringPoint, int? meteringMode)> diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point.dart b/packages/camera/camera_android_camerax/lib/src/metering_point.dart index 714db9489c5..d699993a893 100644 --- a/packages/camera/camera_android_camerax/lib/src/metering_point.dart +++ b/packages/camera/camera_android_camerax/lib/src/metering_point.dart @@ -12,6 +12,8 @@ import 'java_object.dart'; /// Representation for a region which can be converted to sensor coordinate /// system for focus and metering purpose. +/// +/// See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. @immutable class MeteringPoint extends JavaObject { /// Creates a [MeteringPoint]. @@ -56,14 +58,14 @@ class MeteringPoint extends JavaObject { /// Y coordinate. final double y; - /// The size of the MeteringPoint width and height (ranging from 0 to 1), - /// which is a (normalized) percentage of the sensor width/height - /// (or crop region width/height if crop region is set). + /// The size of the [MeteringPoint] width and height (ranging from 0 to 1), + /// which is a normalized percentage of the sensor width/height (or crop + /// region width/height if crop region is set). final double? size; - /// The default size of the MeteringPoint width and height - /// (ranging from 0 to 1) which is a (normalized) percentage of the sensor - /// width/height (or crop region width/height if crop region is set). + /// The default size of the [MeteringPoint] width and height (ranging from 0 + /// to 1) which is a (normalized) percentage of the sensor width/height (or + /// crop region width/height if crop region is set). static Future getDefaultPointSize( {BinaryMessenger? binaryMessenger}) { final MeteringPointHostApi hostApi = diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 14fcf087720..1e0a8db31c6 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -126,7 +126,7 @@ enum VideoResolutionFallbackRule { lowerQualityThan, } -/// Convenience class for building [FocusMeteringAction] with multiple metering +/// Convenience class for building [FocusMeteringAction]s with multiple metering /// points. class MeteringPointInfo { MeteringPointInfo({ @@ -134,11 +134,12 @@ class MeteringPointInfo { required this.meteringMode, }); - /// Instance manager ID corresponding to [MeteringPoint] that relates to this - /// info. + /// InstanceManager ID for a [MeteringPoint]. int meteringPointId; - /// Metering mode represented by one of the [FocusMeteringAction] constants. + /// The meterind mode of the [MeteringPoint] whose ID is [meteringPointId]. + /// + /// Metering mode should be one of the [FocusMeteringAction] constants. int? meteringMode; } diff --git a/packages/camera/camera_android_camerax/test/camera_control_test.dart b/packages/camera/camera_android_camerax/test/camera_control_test.dart index 91007e8afda..63c7a7d9aa9 100644 --- a/packages/camera/camera_android_camerax/test/camera_control_test.dart +++ b/packages/camera/camera_android_camerax/test/camera_control_test.dart @@ -176,7 +176,7 @@ void main() { when(mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)) .thenAnswer((_) => Future.value(fakeTargetExposureValue)); - expect(await cameraControl.setExposureCompensationIndex(3), + expect(await cameraControl.setExposureCompensationIndex(index), equals(fakeTargetExposureValue)); verify( mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)); From 2e69a9c45e52e47759d89575e7afc9bbbe2e8517 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Mon, 8 Jan 2024 16:44:36 -0800 Subject: [PATCH 19/24] Nits --- .../plugins/camerax/CameraControlHostApiImpl.java | 15 +++++++++------ .../camerax/FocusMeteringActionHostApiImpl.java | 3 ++- .../plugins/camerax/MeteringPointHostApiImpl.java | 12 ++++++------ 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java index 1c1a48b5ea1..0ee5bb687aa 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java @@ -111,7 +111,10 @@ public void onFailure(Throwable t) { ContextCompat.getMainExecutor(context)); } - /** Cancels current {@code FocusMeteringAction} and clears auto focus/auto exposure/auto white balance regions. */ + /** + * Cancels current {@code FocusMeteringAction} and clears auto focus/auto exposure/auto white + * balance regions. + */ public void cancelFocusAndMetering( @NonNull CameraControl cameraControl, @NonNull Result result) { ListenableFuture cancelFocusAndMeteringFuture = cameraControl.cancelFocusAndMetering(); @@ -131,12 +134,12 @@ public void onFailure(Throwable t) { } /** - * Sets the exposure compensation index for the specified {@link CameraControl} instance and returns - * the new target exposure value. + * Sets the exposure compensation index for the specified {@link CameraControl} instance and + * returns the new target exposure value. * - *

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

The exposure compensation value set on the camera must be within the range of {@code + * ExposureState#getExposureCompensationRange()} for the current {@code ExposureState} for the + * call to succeed. */ public void setExposureCompensationIndex( @NonNull CameraControl cameraControl, @NonNull Long index, @NonNull Result result) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java index 3dc0d8e9720..1f25cd3a191 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java @@ -64,7 +64,8 @@ public static class FocusMeteringActionProxy { @VisibleForTesting @NonNull - public FocusMeteringAction.Builder getFocusMeteringActionBuilder(MeteringPoint meteringPoint) { + public FocusMeteringAction.Builder getFocusMeteringActionBuilder( + @NonNull MeteringPoint meteringPoint) { return new FocusMeteringAction.Builder(meteringPoint); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java index 79ef88662f9..343fbe731ac 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java @@ -28,10 +28,10 @@ public static class MeteringPointProxy { /** * Creates a surface oriented {@link MeteringPoint} with the specified x, y, and size. - * - * A {@link SurfaceOrientedMeteringPointFactory} is used to construct the {@link MeteringPoint} - * because underlying the camera preview that this plugin uses is a Flutter texture that is backed - * by a {@link Surface} created by the Flutter Android embedding. + * + *

A {@link SurfaceOrientedMeteringPointFactory} is used to construct the {@link + * MeteringPoint} because underlying the camera preview that this plugin uses is a Flutter + * texture that is backed by a {@link Surface} created by the Flutter Android embedding. */ @NonNull public MeteringPoint create(@NonNull Double x, @NonNull Double y, @Nullable Double size) { @@ -51,8 +51,8 @@ public SurfaceOrientedMeteringPointFactory getSurfaceOrientedMeteringPointFactor } /** - * Returns the default point size of the {@link MeteringPoint} width and height, which is a normalized - * percentage of the sensor width/height. + * Returns the default point size of the {@link MeteringPoint} width and height, which is a + * normalized percentage of the sensor width/height. */ @NonNull public float getDefaultPointSize() { From 643fabb2f636a1809fa652cb4b98353e42641af6 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Mon, 8 Jan 2024 16:59:08 -0800 Subject: [PATCH 20/24] lint --- .../flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java index 1f25cd3a191..8c6222ff7b6 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java @@ -72,7 +72,7 @@ public FocusMeteringAction.Builder getFocusMeteringActionBuilder( @VisibleForTesting @NonNull public FocusMeteringAction.Builder getFocusMeteringActionBuilder( - MeteringPoint meteringPoint, int meteringMode) { + @NonNull MeteringPoint meteringPoint, int meteringMode) { return new FocusMeteringAction.Builder(meteringPoint, meteringMode); } } From 36d9a2e9083012fc5deb0ddcd72c88f68e710d80 Mon Sep 17 00:00:00 2001 From: Camille Simon <43054281+camsim99@users.noreply.github.com> Date: Wed, 24 Jan 2024 09:29:08 -0800 Subject: [PATCH 21/24] Update packages/camera/camera_android_camerax/pigeons/camerax_library.dart Co-authored-by: Gray Mackall <34871572+gmackall@users.noreply.github.com> --- .../camera/camera_android_camerax/pigeons/camerax_library.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 1e0a8db31c6..7fbc7e1abaf 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -137,7 +137,7 @@ class MeteringPointInfo { /// InstanceManager ID for a [MeteringPoint]. int meteringPointId; - /// The meterind mode of the [MeteringPoint] whose ID is [meteringPointId]. + /// The metering mode of the [MeteringPoint] whose ID is [meteringPointId]. /// /// Metering mode should be one of the [FocusMeteringAction] constants. int? meteringMode; From 92157c4bc6d38c6bb64fc7299b5c3bb26a67093b Mon Sep 17 00:00:00 2001 From: Camille Simon <43054281+camsim99@users.noreply.github.com> Date: Wed, 24 Jan 2024 09:29:17 -0800 Subject: [PATCH 22/24] Update packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java Co-authored-by: Gray Mackall <34871572+gmackall@users.noreply.github.com> --- .../test/java/io/flutter/plugins/camerax/CameraControlTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index 5f547abacbc..42ace7a51fb 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -216,7 +216,7 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { } @Test - public void cancelFocusAndMetering_cancelFocusAndMeteringAsExpected() { + public void cancelFocusAndMetering_cancelsFocusAndMeteringAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final CameraControlHostApiImpl cameraControlHostApiImpl = new CameraControlHostApiImpl( From 99774631492e7030d3a749e2e4080da64b54daba Mon Sep 17 00:00:00 2001 From: Camille Simon <43054281+camsim99@users.noreply.github.com> Date: Wed, 24 Jan 2024 09:29:35 -0800 Subject: [PATCH 23/24] Update packages/camera/camera_android_camerax/lib/src/camera_control.dart Co-authored-by: Gray Mackall <34871572+gmackall@users.noreply.github.com> --- .../camera/camera_android_camerax/lib/src/camera_control.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/lib/src/camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera_control.dart index 48ec4ff4d42..5ac59f062ed 100644 --- a/packages/camera/camera_android_camerax/lib/src/camera_control.dart +++ b/packages/camera/camera_android_camerax/lib/src/camera_control.dart @@ -161,7 +161,7 @@ class _CameraControlHostApiImpl extends CameraControlHostApi { return setExposureCompensationIndex(identifier, index); } on PlatformException catch (e) { SystemServices.cameraErrorStreamController.add( - e.message ?? 'Setting the camera xposure compensation index failed.'); + e.message ?? 'Setting the camera exposure compensation index failed.'); return Future.value(); } } From cdfd98c92fd22fa2ff3a5aab10c54597e4f6a262 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 24 Jan 2024 09:38:05 -0800 Subject: [PATCH 24/24] format --- .../camera/camera_android_camerax/lib/src/camera_control.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera_control.dart index 5ac59f062ed..9c50ffa161f 100644 --- a/packages/camera/camera_android_camerax/lib/src/camera_control.dart +++ b/packages/camera/camera_android_camerax/lib/src/camera_control.dart @@ -160,8 +160,8 @@ class _CameraControlHostApiImpl extends CameraControlHostApi { try { return setExposureCompensationIndex(identifier, index); } on PlatformException catch (e) { - SystemServices.cameraErrorStreamController.add( - e.message ?? 'Setting the camera exposure compensation index failed.'); + SystemServices.cameraErrorStreamController.add(e.message ?? + 'Setting the camera exposure compensation index failed.'); return Future.value(); } }