From 3fdfdea0721fe7a36f6aaa509075f01a194f6748 Mon Sep 17 00:00:00 2001
From: xie <xie-email@example.com>
Date: Sat, 23 Nov 2024 09:19:59 +0000
Subject: [PATCH] feat(usb_camera): apply usb_camera patch

---
 android/packages/apps/Camera2/src/com/android/camera/MultiToggleImageButton.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/android/packages/apps/Camera2/src/com/android/camera/MultiToggleImageButton.java b/android/packages/apps/Camera2/src/com/android/camera/MultiToggleImageButton.java
index 34ffcef..9f885ef 100755
--- a/android/packages/apps/Camera2/src/com/android/camera/MultiToggleImageButton.java
+++ b/android/packages/apps/Camera2/src/com/android/camera/MultiToggleImageButton.java
@@ -27,6 +27,7 @@
 import android.graphics.Matrix;
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
+import android.os.SystemProperties;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageButton;
@@ -74,6 +75,8 @@
     private int mAnimDirection;
     private Matrix mMatrix = new Matrix();
     private ValueAnimator mAnimator;
+
+    private static final String ANDROID_UVC_PROPERTY = "ro.camera.uvcfacing";
 
     public MultiToggleImageButton(Context context) {
         super(context);
@@ -242,6 +245,37 @@
 
     private void nextState() {
         int state = mState + 1;
+        if(getId() == R.id.camera_toggle_button){
+            /*
+             *If ro.camera.uvcfacing is set, then skip the original facing state.
+            */
+            String uvcProperty = SystemProperties.get(ANDROID_UVC_PROPERTY, "");
+            if(uvcProperty.equals("")){
+                if(state == Integer.parseInt(getResources()
+                            .getString(R.string.pref_camera_id_entry_external_value))){
+                    state = state + 1;
+                }
+            }
+            else if (uvcProperty.equals("back")) {
+                if(state == Integer.parseInt(getResources()
+                            .getString(R.string.pref_camera_id_entry_back_value))){
+                    state = state + 1;
+                }
+            }
+            else if (uvcProperty.equals("front")) {
+                if(state == Integer.parseInt(getResources()
+                            .getString(R.string.pref_camera_id_entry_front_value))){
+                    state = state + 1;
+                }
+            }
+            else if (uvcProperty.equals("external")) {
+                int externalValue = Integer.parseInt(getResources().
+                        getString(R.string.pref_camera_id_entry_external_value));
+                if(state != externalValue){
+                    state = externalValue;
+                }
+            }
+        }
         if (state >= mImageIds.length) {
             state = 0;
         }

--
Gitblit v1.6.2