Skip to content

Commit eab9765

Browse files
committed
Merge branch 'master' into add_zoom_to_android_webview
* master: [webview] Fix typos in the README (flutter#4249) [google_sign_in] add serverAuthCode to GoogleSignInAccount (flutter#4180) [ci] Update macOS Cirrus image to Xcode 13 (flutter#4429) [shared_preferences] Switch to new analysis options (flutter#4384) [flutter_plugin_android_lifecycle] remove placeholder dart file (flutter#4413) [camera] Run iOS methods on UI thread by default (flutter#4140) [ci] Always run all `format` steps (flutter#4427) [flutter_plugin_tools] Fix license-check on Windows (flutter#4425) [google_maps_flutter] Clean Java test, consolidate Marker example. (flutter#4400) [image_picker][android] suppress unchecked warning (flutter#4408) [ci] Replace Firebase Test Lab deprecated Pixel 4 device with Pixel 5 (flutter#4436) [image_picker_for_web] Added support for maxWidth, maxHeight and imageQuality (flutter#4389) Bump compileSdkVersion to 31 (flutter#4432) [camera] Update [CameraOrientationTests testOrientationNotifications] unit test to work on Xcode 13 (flutter#4426) Update integration_test README (flutter#3824) [webview_flutter] Adjust test URLs again (flutter#4407) [google_sign_in] Add serverAuthCode attribute to google_sign_in_platform_interface user data (flutter#4179) [camera] Add filter for unsupported cameras on Android (flutter#4418) # Conflicts: # packages/webview_flutter/webview_flutter/CHANGELOG.md # packages/webview_flutter/webview_flutter/pubspec.yaml
2 parents 5238f60 + 99fbfbd commit eab9765

File tree

93 files changed

+1723
-901
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+1723
-901
lines changed

.cirrus.yml

+9-8
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ macos_template: &MACOS_TEMPLATE
4747
# PRs on macOS.
4848
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
4949
osx_instance:
50-
image: big-sur-xcode-12.5
50+
image: big-sur-xcode-13
5151

5252
# Light-workload Linux tasks.
5353
# These use default machines, with fewer CPUs, to reduce pressure on the
@@ -69,8 +69,8 @@ task:
6969
- dart pub run test
7070
- name: publishable
7171
env:
72-
# TODO (mvanbeusekom): Temporary override to "stable" because of failure on "master".
73-
# Remove override once https://github.com/dart-lang/pub/issues/3152 is resolved.
72+
# TODO (mvanbeusekom): Temporary override to "stable" because of failure on "master".
73+
# Remove override once https://github.com/dart-lang/pub/issues/3152 is resolved.
7474
CHANNEL: stable
7575
CHANGE_DESC: "$TMPDIR/change-description.txt"
7676
version_check_script:
@@ -88,9 +88,10 @@ task:
8888
- fi
8989
publish_check_script: ./script/tool_runner.sh publish-check
9090
- name: format
91-
format_script: ./script/tool_runner.sh format --fail-on-change
92-
pubspec_script: ./script/tool_runner.sh pubspec-check
93-
license_script: dart $PLUGIN_TOOL license-check
91+
always:
92+
format_script: ./script/tool_runner.sh format --fail-on-change
93+
pubspec_script: ./script/tool_runner.sh pubspec-check
94+
license_script: dart $PLUGIN_TOOL license-check
9495
- name: federated_safety
9596
# This check is only meaningful for PRs, as it validates changes
9697
# rather than state.
@@ -214,7 +215,7 @@ task:
214215
- export CIRRUS_COMMIT_MESSAGE=""
215216
- if [[ -n "$GCLOUD_FIREBASE_TESTLAB_KEY" ]]; then
216217
- echo $GCLOUD_FIREBASE_TESTLAB_KEY > ${HOME}/gcloud-service-key.json
217-
- ./script/tool_runner.sh firebase-test-lab --device model=flame,version=29 --device model=starqlteue,version=26 --exclude=script/configs/exclude_integration_android.yaml
218+
- ./script/tool_runner.sh firebase-test-lab --device model=redfin,version=30 --device model=starqlteue,version=26 --exclude=script/configs/exclude_integration_android.yaml
218219
- else
219220
- echo "This user does not have permission to run Firebase Test Lab tests."
220221
- fi
@@ -274,7 +275,7 @@ task:
274275
SIMCTL_CHILD_MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550]
275276
create_simulator_script:
276277
- xcrun simctl list
277-
- xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-5 | xargs xcrun simctl boot
278+
- xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-15-0 | xargs xcrun simctl boot
278279
build_script:
279280
- ./script/tool_runner.sh build-examples --ios
280281
xcode_analyze_script:

packages/camera/camera/CHANGELOG.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
## NEXT
1+
## 0.9.4+3
22

3-
* Updated package description.
3+
* Fix registerTexture and result being called on background thread on iOS.
4+
5+
## 0.9.4+2
6+
7+
* Updated package description;
8+
* Refactor unit test on iOS to make it compatible with new restrictions in Xcode 13 which only supports the use of the `XCUIDevice` in Xcode UI tests.
49

510
## 0.9.4+1
611

packages/camera/camera/android/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
group 'io.flutter.plugins.camera'
22
version '1.0-SNAPSHOT'
3-
def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"]
3+
def args = ["-Xlint:deprecation","-Xlint:unchecked"]
44

55
buildscript {
66
repositories {

packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java

+10
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,16 @@ public static List<Map<String, Object>> getAvailableCameras(Activity activity)
9797
String[] cameraNames = cameraManager.getCameraIdList();
9898
List<Map<String, Object>> cameras = new ArrayList<>();
9999
for (String cameraName : cameraNames) {
100+
int cameraId;
101+
try {
102+
cameraId = Integer.parseInt(cameraName, 10);
103+
} catch (NumberFormatException e) {
104+
cameraId = -1;
105+
}
106+
if (cameraId < 0) {
107+
continue;
108+
}
109+
100110
HashMap<String, Object> details = new HashMap<>();
101111
CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraName);
102112
details.put("name", cameraName);

packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java

+45
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,20 @@
55
package io.flutter.plugins.camera;
66

77
import static org.junit.Assert.assertEquals;
8+
import static org.mockito.Mockito.any;
9+
import static org.mockito.Mockito.anyString;
10+
import static org.mockito.Mockito.mock;
11+
import static org.mockito.Mockito.when;
812

13+
import android.app.Activity;
14+
import android.content.Context;
15+
import android.hardware.camera2.CameraAccessException;
16+
import android.hardware.camera2.CameraCharacteristics;
17+
import android.hardware.camera2.CameraManager;
18+
import android.hardware.camera2.CameraMetadata;
919
import io.flutter.embedding.engine.systemchannels.PlatformChannel;
20+
import java.util.List;
21+
import java.util.Map;
1022
import org.junit.Test;
1123

1224
public class CameraUtilsTest {
@@ -52,4 +64,37 @@ public void deserializeDeviceOrientation_deserializesCorrectly() {
5264
public void deserializeDeviceOrientation_throwsForNull() {
5365
CameraUtils.deserializeDeviceOrientation(null);
5466
}
67+
68+
@Test
69+
public void getAvailableCameras_retrievesValidCameras()
70+
throws CameraAccessException, NumberFormatException {
71+
final Activity mockActivity = mock(Activity.class);
72+
final CameraManager mockCameraManager = mock(CameraManager.class);
73+
final CameraCharacteristics mockCameraCharacteristics = mock(CameraCharacteristics.class);
74+
final String[] mockCameraIds = {"1394902", "-192930", "0283835", "foobar"};
75+
final int mockSensorOrientation0 = 90;
76+
final int mockSensorOrientation2 = 270;
77+
final int mockLensFacing0 = CameraMetadata.LENS_FACING_FRONT;
78+
final int mockLensFacing2 = CameraMetadata.LENS_FACING_EXTERNAL;
79+
80+
when(mockActivity.getSystemService(Context.CAMERA_SERVICE)).thenReturn(mockCameraManager);
81+
when(mockCameraManager.getCameraIdList()).thenReturn(mockCameraIds);
82+
when(mockCameraManager.getCameraCharacteristics(anyString()))
83+
.thenReturn(mockCameraCharacteristics);
84+
when(mockCameraCharacteristics.get(any()))
85+
.thenReturn(mockSensorOrientation0)
86+
.thenReturn(mockLensFacing0)
87+
.thenReturn(mockSensorOrientation2)
88+
.thenReturn(mockLensFacing2);
89+
90+
List<Map<String, Object>> availableCameras = CameraUtils.getAvailableCameras(mockActivity);
91+
92+
assertEquals(availableCameras.size(), 2);
93+
assertEquals(availableCameras.get(0).get("name"), "1394902");
94+
assertEquals(availableCameras.get(0).get("sensorOrientation"), mockSensorOrientation0);
95+
assertEquals(availableCameras.get(0).get("lensFacing"), "front");
96+
assertEquals(availableCameras.get(1).get("name"), "0283835");
97+
assertEquals(availableCameras.get(1).get("sensorOrientation"), mockSensorOrientation2);
98+
assertEquals(availableCameras.get(1).get("lensFacing"), "external");
99+
}
55100
}

0 commit comments

Comments
 (0)