From 786ff4f4ca2374bdd9177f2e24b503d43e7a3b93 Mon Sep 17 00:00:00 2001
From: liyujie <2352380935@qq.com>
Date: Thu, 28 Aug 2025 12:04:21 +0000
Subject: [PATCH] [4/4]解决USB摄像头打开相机预览界面绿屏

---
 android/packages/apps/Camera2/src/com/android/camera/settings/PictureSizeLoader.java |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/android/packages/apps/Camera2/src/com/android/camera/settings/PictureSizeLoader.java b/android/packages/apps/Camera2/src/com/android/camera/settings/PictureSizeLoader.java
old mode 100755
new mode 100644
index 582d77f..f261213
--- a/android/packages/apps/Camera2/src/com/android/camera/settings/PictureSizeLoader.java
+++ b/android/packages/apps/Camera2/src/com/android/camera/settings/PictureSizeLoader.java
@@ -49,17 +49,22 @@
     public static class PictureSizes {
         public final List<Size> backCameraSizes;
         public final List<Size> frontCameraSizes;
+        public final List<Size> externalCameraSizes;
         public final Optional<SelectedVideoQualities> videoQualitiesBack;
         public final Optional<SelectedVideoQualities> videoQualitiesFront;
-
+        public final Optional<SelectedVideoQualities> videoQualitiesExternal;
         PictureSizes(List<Size> backCameraSizes,
                 List<Size> frontCameraSizes,
+                List<Size> externalCameraSizes,
                 Optional<SelectedVideoQualities> videoQualitiesBack,
-                Optional<SelectedVideoQualities> videoQualitiesFront) {
+                Optional<SelectedVideoQualities> videoQualitiesFront,
+                Optional<SelectedVideoQualities> videoQualitiesExternal) {
             this.backCameraSizes = backCameraSizes;
             this.frontCameraSizes = frontCameraSizes;
+            this.externalCameraSizes = externalCameraSizes;
             this.videoQualitiesBack = videoQualitiesBack;
             this.videoQualitiesFront = videoQualitiesFront;
+            this.videoQualitiesExternal = videoQualitiesExternal;
         }
     }
 
@@ -111,17 +116,24 @@
      * We then calculate the resolutions that should be available and in the end
      * filter it in case a resolution is on the blacklist for this device.
      */
+
     public PictureSizes computePictureSizes() {
         List<Size> backCameraSizes = computeSizesForCamera(SettingsUtil.CAMERA_FACING_BACK);
         List<Size> frontCameraSizes = computeSizesForCamera(SettingsUtil.CAMERA_FACING_FRONT);
+        List<Size> externalCameraSizes = computeSizesForCamera(SettingsUtil.CAMERA_FACING_EXTERNAL);
         Optional<SelectedVideoQualities> videoQualitiesBack =
-                computeQualitiesForCamera(SettingsUtil.CAMERA_FACING_BACK);
+            computeQualitiesForCamera(SettingsUtil.CAMERA_FACING_BACK);
         Optional<SelectedVideoQualities> videoQualitiesFront =
-                computeQualitiesForCamera(SettingsUtil.CAMERA_FACING_FRONT);
-        return new PictureSizes(backCameraSizes, frontCameraSizes, videoQualitiesBack,
-                videoQualitiesFront);
+            computeQualitiesForCamera(SettingsUtil.CAMERA_FACING_FRONT);
+        Optional<SelectedVideoQualities> videoQualitiesExternal =
+            computeQualitiesForCamera(SettingsUtil.CAMERA_FACING_EXTERNAL);
+        return new PictureSizes(backCameraSizes, frontCameraSizes, externalCameraSizes,
+                videoQualitiesBack,
+                videoQualitiesFront,
+                videoQualitiesExternal);
     }
 
+
     private List<Size> computeSizesForCamera(CameraDeviceSelector facingSelector) {
         List<Size> sizes;
         int cameraId = SettingsUtil.getCameraId(mCameraDeviceInfo, facingSelector);

--
Gitblit v1.6.2