Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

[camera] Fix preview pause orientation #5209

Merged
merged 45 commits into from
May 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
b5a8cee
[camera] Fix preview pause orientation
cassioso Apr 8, 2022
dc04785
[camera] Fix preview pause orientation
cassioso Apr 8, 2022
524c77e
Merge branch 'fix-preview-pause-orientation' of https://github.com/ca…
cassioso Apr 8, 2022
74eeadf
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 8, 2022
989b265
Adds pausePreview test
cassioso Apr 10, 2022
3bb03d9
Uses copyWith instead of calling lockCaptureOrientation()
cassioso Apr 10, 2022
b1543c7
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 10, 2022
c88390c
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 10, 2022
e8bf47a
Merge branch 'fix-preview-pause-orientation' of https://github.com/ca…
cassioso Apr 11, 2022
47aadc3
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 12, 2022
d221e07
Fixes text in accordance to style guide
cassioso Apr 12, 2022
3630519
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 13, 2022
a9ff797
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 14, 2022
a91a76b
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 15, 2022
d58382f
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 19, 2022
9264a3c
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 20, 2022
678e544
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 20, 2022
07679c8
Merge branch 'main' into fix-preview-pause-orientation
cassioso Apr 22, 2022
79a8dad
version update 0.9.4+21
cassioso Apr 22, 2022
bf5a4d8
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 23, 2022
b91151f
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 26, 2022
643a3c2
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 26, 2022
aa2900a
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 28, 2022
b509aec
Merge branch 'main' into fix-preview-pause-orientation
cassioso Apr 29, 2022
9f1ccc0
Version update 0.9.4+22
cassioso Apr 29, 2022
9fa94a9
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso Apr 29, 2022
3afab1c
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 1, 2022
3af10ba
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 1, 2022
890b6f8
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 2, 2022
28ab99b
Merge branch 'main' into fix-preview-pause-orientation
cassioso May 2, 2022
6487516
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 4, 2022
5e1c3f9
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 5, 2022
7f52970
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 5, 2022
f04832b
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 5, 2022
7a3e94a
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 5, 2022
f5501c7
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 6, 2022
1c1090e
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 7, 2022
216e753
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 9, 2022
78c83b6
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 10, 2022
b4b827c
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 10, 2022
2020524
Fix versioning
cassioso May 10, 2022
1e8dbb1
Uses .of instead of .fromNullable for nonnullables
cassioso May 10, 2022
56e7487
Merge branch 'flutter:main' into fix-preview-pause-orientation
cassioso May 10, 2022
0300b02
Merge branch 'main' into fix-preview-pause-orientation
cassioso May 11, 2022
715d746
Version update 0.9.4+24
cassioso May 11, 2022
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
4 changes: 4 additions & 0 deletions packages/camera/camera/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.9.4+24

* Fixes preview orientation when pausing preview with locked orientation.

## 0.9.4+23

* Minor fixes for new analysis options.
Expand Down
8 changes: 4 additions & 4 deletions packages/camera/camera/lib/src/camera_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -359,8 +359,8 @@ class CameraController extends ValueNotifier<CameraValue> {
await CameraPlatform.instance.pausePreview(_cameraId);
value = value.copyWith(
isPreviewPaused: true,
previewPauseOrientation:
Optional<DeviceOrientation>.of(value.deviceOrientation));
previewPauseOrientation: Optional<DeviceOrientation>.of(
value.lockedCaptureOrientation ?? value.deviceOrientation));
} on PlatformException catch (e) {
throw CameraException(e.code, e.message);
}
Expand Down Expand Up @@ -520,7 +520,7 @@ class CameraController extends ValueNotifier<CameraValue> {
value = value.copyWith(
isRecordingVideo: true,
isRecordingPaused: false,
recordingOrientation: Optional<DeviceOrientation>.fromNullable(
recordingOrientation: Optional<DeviceOrientation>.of(
value.lockedCaptureOrientation ?? value.deviceOrientation));
} on PlatformException catch (e) {
throw CameraException(e.code, e.message);
Expand Down Expand Up @@ -762,7 +762,7 @@ class CameraController extends ValueNotifier<CameraValue> {
await CameraPlatform.instance.lockCaptureOrientation(
_cameraId, orientation ?? value.deviceOrientation);
value = value.copyWith(
lockedCaptureOrientation: Optional<DeviceOrientation>.fromNullable(
lockedCaptureOrientation: Optional<DeviceOrientation>.of(
orientation ?? value.deviceOrientation));
} on PlatformException catch (e) {
throw CameraException(e.code, e.message);
Expand Down
2 changes: 1 addition & 1 deletion packages/camera/camera/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: A Flutter plugin for controlling the camera. Supports previewing
Dart.
repository: https://github.com/flutter/plugins/tree/main/packages/camera/camera
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
version: 0.9.4+23
version: 0.9.4+24

environment:
sdk: ">=2.14.0 <3.0.0"
Expand Down
25 changes: 25 additions & 0 deletions packages/camera/camera/test/camera_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
import 'package:quiver/core.dart';

List<CameraDescription> get mockAvailableCameras => <CameraDescription>[
const CameraDescription(
Expand Down Expand Up @@ -1180,6 +1181,30 @@ void main() {
expect(cameraController.value.isPreviewPaused, equals(true));
});

test(
'pausePreview() sets previewPauseOrientation according to locked orientation',
() async {
final CameraController cameraController = CameraController(
const CameraDescription(
name: 'cam',
lensDirection: CameraLensDirection.back,
sensorOrientation: 90),
ResolutionPreset.max);
await cameraController.initialize();
cameraController.value = cameraController.value.copyWith(
isPreviewPaused: false,
deviceOrientation: DeviceOrientation.portraitUp,
lockedCaptureOrientation:
Optional<DeviceOrientation>.of(DeviceOrientation.landscapeRight));

await cameraController.pausePreview();

expect(cameraController.value.deviceOrientation,
equals(DeviceOrientation.portraitUp));
expect(cameraController.value.previewPauseOrientation,
equals(DeviceOrientation.landscapeRight));
});

test('pausePreview() throws $CameraException on $PlatformException',
() async {
final CameraController cameraController = CameraController(
Expand Down