Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Autoformat
  • Loading branch information
stuartmorgan-g committed Aug 28, 2025
commit e8d8a7703548f14c248383915d7fdaf9d5239f24
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ void main() {
testWidgets(
'Capture specific video resolutions',
(WidgetTester tester) async {
final List<CameraDescription> cameras =
await CameraPlatform.instance.availableCameras();
final List<CameraDescription> cameras = await CameraPlatform.instance
.availableCameras();
if (cameras.isEmpty) {
return;
}
Expand Down Expand Up @@ -114,8 +114,8 @@ void main() {
);

testWidgets('Pause and resume video recording', (WidgetTester tester) async {
final List<CameraDescription> cameras =
await CameraPlatform.instance.availableCameras();
final List<CameraDescription> cameras = await CameraPlatform.instance
.availableCameras();
if (cameras.isEmpty) {
return;
}
Expand Down Expand Up @@ -164,8 +164,8 @@ void main() {
});

testWidgets('Set description while recording', (WidgetTester tester) async {
final List<CameraDescription> cameras =
await CameraPlatform.instance.availableCameras();
final List<CameraDescription> cameras = await CameraPlatform.instance
.availableCameras();
if (cameras.length < 2) {
return;
}
Expand Down Expand Up @@ -201,8 +201,8 @@ void main() {
});

testWidgets('Set description', (WidgetTester tester) async {
final List<CameraDescription> cameras =
await CameraPlatform.instance.availableCameras();
final List<CameraDescription> cameras = await CameraPlatform.instance
.availableCameras();
if (cameras.length < 2) {
return;
}
Expand All @@ -216,8 +216,8 @@ void main() {
});

testWidgets('image streaming', (WidgetTester tester) async {
final List<CameraDescription> cameras =
await CameraPlatform.instance.availableCameras();
final List<CameraDescription> cameras = await CameraPlatform.instance
.availableCameras();
if (cameras.isEmpty) {
return;
}
Expand Down Expand Up @@ -246,8 +246,8 @@ void main() {
});

testWidgets('recording with image stream', (WidgetTester tester) async {
final List<CameraDescription> cameras =
await CameraPlatform.instance.availableCameras();
final List<CameraDescription> cameras = await CameraPlatform.instance
.availableCameras();
if (cameras.isEmpty) {
return;
}
Expand Down Expand Up @@ -284,8 +284,8 @@ void main() {

group('Camera settings', () {
Future<CameraDescription> getCamera() async {
final List<CameraDescription> cameras =
await CameraPlatform.instance.availableCameras();
final List<CameraDescription> cameras = await CameraPlatform.instance
.availableCameras();
expect(cameras.isNotEmpty, equals(true));

// Prefer back camera, as it allows more customizations.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,20 +131,17 @@ class CameraValue {
exposureMode: exposureMode ?? this.exposureMode,
focusMode: focusMode ?? this.focusMode,
deviceOrientation: deviceOrientation ?? this.deviceOrientation,
lockedCaptureOrientation:
lockedCaptureOrientation == null
? this.lockedCaptureOrientation
: lockedCaptureOrientation.orNull,
recordingOrientation:
recordingOrientation == null
? this.recordingOrientation
: recordingOrientation.orNull,
lockedCaptureOrientation: lockedCaptureOrientation == null
? this.lockedCaptureOrientation
: lockedCaptureOrientation.orNull,
recordingOrientation: recordingOrientation == null
? this.recordingOrientation
: recordingOrientation.orNull,
isPreviewPaused: isPreviewPaused ?? this.isPreviewPaused,
description: description ?? this.description,
previewPauseOrientation:
previewPauseOrientation == null
? this.previewPauseOrientation
: previewPauseOrientation.orNull,
previewPauseOrientation: previewPauseOrientation == null
? this.previewPauseOrientation
: previewPauseOrientation.orNull,
);
}

Expand Down
43 changes: 22 additions & 21 deletions packages/camera/camera_android/example/lib/camera_preview.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,25 +23,26 @@ class CameraPreview extends StatelessWidget {
Widget build(BuildContext context) {
return controller.value.isInitialized
? ValueListenableBuilder<CameraValue>(
valueListenable: controller,
builder: (BuildContext context, Object? value, Widget? child) {
final double cameraAspectRatio =
controller.value.previewSize!.width /
controller.value.previewSize!.height;
return AspectRatio(
aspectRatio:
_isLandscape() ? cameraAspectRatio : (1 / cameraAspectRatio),
child: Stack(
fit: StackFit.expand,
children: <Widget>[
_wrapInRotatedBox(child: controller.buildPreview()),
child ?? Container(),
],
),
);
},
child: child,
)
valueListenable: controller,
builder: (BuildContext context, Object? value, Widget? child) {
final double cameraAspectRatio =
controller.value.previewSize!.width /
controller.value.previewSize!.height;
return AspectRatio(
aspectRatio: _isLandscape()
? cameraAspectRatio
: (1 / cameraAspectRatio),
child: Stack(
fit: StackFit.expand,
children: <Widget>[
_wrapInRotatedBox(child: controller.buildPreview()),
child ?? Container(),
],
),
);
},
child: child,
)
: Container();
}

Expand Down Expand Up @@ -74,7 +75,7 @@ class CameraPreview extends StatelessWidget {
return controller.value.isRecordingVideo
? controller.value.recordingOrientation!
: (controller.value.previewPauseOrientation ??
controller.value.lockedCaptureOrientation ??
controller.value.deviceOrientation);
controller.value.lockedCaptureOrientation ??
controller.value.deviceOrientation);
}
}
Loading