Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d326ab90 authored by Sahil Sonar's avatar Sahil Sonar 💬 Committed by Mohammed Althaf T
Browse files

camera: Skip ignored camera IDs when switching

   - On tetris, camera IDs 2 & 3 (logical lenses shown as physical) are ignored.
   - This hides extra "Lens" options in the camera app UI.
   - However, camera switching still cycles through these ignored IDs because isMultiCamEnabled() returns false.
   - This happens because multi_same_facing is false when only
     one front_camera_ids & back_camera_ids remain after ignoring, so multi-cam mode is disabled.
parent 0b976c17
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.Objects;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@@ -121,7 +120,6 @@ import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import kotlin.coroutines.CoroutineContext;
import kotlinx.coroutines.CoroutineScope;
import kotlinx.coroutines.Dispatchers;
import kotlinx.coroutines.Job;
@@ -506,8 +504,7 @@ public class MainActivity extends AppCompatActivity implements PreferenceFragmen
            this.other_camera_ids = new ArrayList<>();
            for(int i=0;i<n_cameras;i++) {
                String currentCameraID = String.valueOf(i);
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N &&
                        Arrays.stream(ignoredCameraIDs).anyMatch(id -> id.equals(currentCameraID))) {
                if (Arrays.asList(ignoredCameraIDs).contains(currentCameraID)) {
                    continue;
                }

@@ -2666,14 +2663,13 @@ public class MainActivity extends AppCompatActivity implements PreferenceFragmen
        CameraController.Facing this_facing = preview.getCameraControllerManager().getFacing(camera_id);
        for(int i=0;i<preview.getCameraControllerManager().getNumberOfCameras();i++) {
            String currentCameraID = String.valueOf(i);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N &&
                    Arrays.stream(ignoredCameraIDs).anyMatch(id -> id.equals(currentCameraID))) {
                continue;
            }
            if( preview.getCameraControllerManager().getFacing(i) != this_facing ) {
                // only show cameras with same facing
                continue;
            }
            if (Arrays.asList(ignoredCameraIDs).contains(currentCameraID)) {
                continue;
            }
            logical_camera_ids.add(i);
        }
        return logical_camera_ids;