Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
4 changes: 4 additions & 0 deletions packages/camera/camera_android_camerax/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.6.27

* Changes `availableCameras` to get the camera name from `Camera2CameraInfo.getCameraId`.

## 0.6.26+3

* Bumps kotlin_version to 2.3.0.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,6 @@ class AndroidCameraCameraX extends CameraPlatform {
(await processCameraProvider!.getAvailableCameraInfos()).cast();

CameraLensDirection? cameraLensDirection;
var cameraCount = 0;
int? cameraSensorOrientation;
String? cameraName;

Expand All @@ -324,13 +323,12 @@ class AndroidCameraCameraX extends CameraPlatform {
}

cameraSensorOrientation = cameraInfo.sensorRotationDegrees;
cameraName = 'Camera $cameraCount';
cameraCount++;
cameraName = await Camera2CameraInfo.from(
cameraInfo: cameraInfo,
).getCameraId();

_savedCameras[cameraName] = cameraInfo;

// TODO(camsim99): Use camera ID retrieved from Camera2CameraInfo as
// camera name: https://github.com/flutter/flutter/issues/147545.
cameraDescriptions.add(
CameraDescription(
name: cameraName,
Expand Down
2 changes: 1 addition & 1 deletion packages/camera/camera_android_camerax/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: camera_android_camerax
description: Android implementation of the camera plugin using the CameraX library.
repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android_camerax
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
version: 0.6.26+3
version: 0.6.27

environment:
sdk: ^3.9.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -503,12 +503,12 @@ void main() {
final camera = AndroidCameraCameraX();
final returnData = <dynamic>[
<String, dynamic>{
'name': 'Camera 0',
'name': '0',
'lensFacing': 'back',
'sensorOrientation': 0,
},
<String, dynamic>{
'name': 'Camera 1',
'name': '1',
'lensFacing': 'front',
'sensorOrientation': 90,
},
Expand Down Expand Up @@ -537,6 +537,17 @@ void main() {

return mockBackCameraSelector;
};
PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) {
final camera2cameraInfo = MockCamera2CameraInfo();
var cameraId = '';
if (cameraInfo == mockBackCameraInfo) {
cameraId = '0';
} else if (cameraInfo == mockFrontCameraInfo) {
cameraId = '1';
}
when(camera2cameraInfo.getCameraId()).thenAnswer((_) async => cameraId);
return camera2cameraInfo;
};
PigeonOverrides.systemServicesManager_new =
({
required void Function(SystemServicesManager, String) onCameraError,
Expand Down Expand Up @@ -1696,17 +1707,17 @@ void main() {
final camera = AndroidCameraCameraX();
final returnData = <dynamic>[
<String, dynamic>{
'name': 'Camera 0',
'name': '0',
'lensFacing': 'back',
'sensorOrientation': 0,
},
<String, dynamic>{
'name': 'Camera 1',
'name': '1',
'lensFacing': 'back',
'sensorOrientation': 0,
},
<String, dynamic>{
'name': 'Camera 2',
'name': '2',
'lensFacing': 'front',
'sensorOrientation': 0,
},
Expand Down Expand Up @@ -1872,6 +1883,17 @@ void main() {
return MockResolutionFilter();
};
PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) {
var cameraId = '';
if (cameraInfo == mockBackCameraInfoOne) {
cameraId = '0';
} else if (cameraInfo == mockBackCameraInfoTwo) {
cameraId = '1';
} else if (cameraInfo == mockFrontCameraInfo) {
cameraId = '2';
}
when(
mockCamera2CameraInfo.getCameraId(),
).thenAnswer((_) async => cameraId);
when(
mockCamera2CameraInfo.getCameraCharacteristic(
mockCameraCharacteristicsKey,
Expand Down Expand Up @@ -3323,12 +3345,12 @@ void main() {

const testSensorOrientation = 90;
const testBackCameraDescription = CameraDescription(
name: 'Camera 0',
name: '0',
lensDirection: CameraLensDirection.back,
sensorOrientation: testSensorOrientation,
);
const testFrontCameraDescription = CameraDescription(
name: 'Camera 1',
name: '1',
lensDirection: CameraLensDirection.front,
sensorOrientation: testSensorOrientation,
);
Expand Down Expand Up @@ -3430,6 +3452,13 @@ void main() {
};
PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) {
final camera2cameraInfo = MockCamera2CameraInfo();
var cameraId = '';
if (cameraInfo == mockBackCameraInfo) {
cameraId = '0';
} else if (cameraInfo == mockFrontCameraInfo) {
cameraId = '1';
}
when(camera2cameraInfo.getCameraId()).thenAnswer((_) async => cameraId);
when(
camera2cameraInfo.getCameraCharacteristic(any),
).thenAnswer((_) async => InfoSupportedHardwareLevel.limited);
Expand Down Expand Up @@ -3594,12 +3623,12 @@ void main() {

const testSensorOrientation = 90;
const testBackCameraDescription = CameraDescription(
name: 'Camera 0',
name: '0',
lensDirection: CameraLensDirection.back,
sensorOrientation: testSensorOrientation,
);
const testFrontCameraDescription = CameraDescription(
name: 'Camera 1',
name: '1',
lensDirection: CameraLensDirection.front,
sensorOrientation: testSensorOrientation,
);
Expand Down Expand Up @@ -3698,6 +3727,13 @@ void main() {
};
PigeonOverrides.camera2CameraInfo_from = ({required dynamic cameraInfo}) {
final camera2cameraInfo = MockCamera2CameraInfo();
var cameraId = '';
if (cameraInfo == mockBackCameraInfo) {
cameraId = '0';
} else if (cameraInfo == mockFrontCameraInfo) {
cameraId = '1';
}
when(camera2cameraInfo.getCameraId()).thenAnswer((_) async => cameraId);
when(
camera2cameraInfo.getCameraCharacteristic(any),
).thenAnswer((_) async => InfoSupportedHardwareLevel.limited);
Expand Down
Loading