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

Commit 9579d98d authored by Mark Harman's avatar Mark Harman
Browse files

Fix tests for devices without metering.

parent 207f0dff
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -3361,10 +3361,15 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
        else {
            assertFalse(mPreview.hasFocusArea());
            assertNull(mPreview.getCameraController().getFocusAreas());
            if( mPreview.getCameraController().supportsMetering() ) {
                // we still set metering areas
                assertNotNull(mPreview.getCameraController().getMeteringAreas());
                assertEquals(1, mPreview.getCameraController().getMeteringAreas().size());
            }
            else {
                assertNull(mPreview.getCameraController().getMeteringAreas());
            }
        }
        String new_focus_value_ui = mPreview.getCurrentFocusValue();
        //noinspection StringEquality
        assertTrue(new_focus_value_ui == focus_value_ui || new_focus_value_ui.equals(focus_value_ui)); // also need to do == check, as strings may be null if focus not supported
@@ -3439,10 +3444,16 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
            else {
                assertFalse(mPreview.hasFocusArea());
                assertNull(mPreview.getCameraController().getFocusAreas());
                if( mPreview.getCameraController().supportsMetering() ) {
                    // we still set metering areas
                    assertNotNull(mPreview.getCameraController().getMeteringAreas());
                    assertEquals(1, mPreview.getCameraController().getMeteringAreas().size());
                }
                else {
                    assertNull(mPreview.getCameraController().getMeteringAreas());
                }
            }
        }
        else {
            assertFalse(mPreview.hasFocusArea());
+1 −0
Original line number Diff line number Diff line
@@ -524,6 +524,7 @@ public abstract class CameraController {
    public abstract List<CameraController.Area> getFocusAreas();
    public abstract List<CameraController.Area> getMeteringAreas();
    public abstract boolean supportsAutoFocus();
    public abstract boolean supportsMetering();
    public abstract boolean focusIsContinuous();
    public abstract boolean focusIsVideo();
    public abstract void reconnect() throws CameraControllerException;
+17 −0
Original line number Diff line number Diff line
@@ -1386,6 +1386,10 @@ public class CameraController1 extends CameraController {

                setCameraParameters(parameters);
            }
            else {
                if( MyDebug.LOG )
                    Log.d(TAG, "metering areas not supported");
            }
        }
        catch(RuntimeException e) {
            e.printStackTrace();
@@ -1458,6 +1462,19 @@ public class CameraController1 extends CameraController {
        return false;
    }

    @Override
    public boolean supportsMetering() {
        try {
            Camera.Parameters parameters = this.getParameters();
            return parameters.getMaxNumMeteringAreas() > 0;
        }
        catch(RuntimeException e) {
            e.printStackTrace();
            count_camera_parameters_exception++;
        }
        return false;
    }

    @Override
    public boolean focusIsContinuous() {
        try {
+5 −0
Original line number Diff line number Diff line
@@ -5008,6 +5008,11 @@ public class CameraController2 extends CameraController {
        return false;
    }

    @Override
    public boolean supportsMetering() {
        return characteristics.get(CameraCharacteristics.CONTROL_MAX_REGIONS_AE) > 0;
    }

    @Override
    public boolean focusIsContinuous() {
        if( previewBuilder == null )