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

Commit d5dfe88a authored by Mark Harman's avatar Mark Harman
Browse files

Update testTakePhotoExposureCompensation to handle repeated zeroes in seekbar.

parent c80f1580
Loading
Loading
Loading
Loading
+23 −9
Original line number Diff line number Diff line
@@ -2805,20 +2805,27 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
        subTestISOButtonAvailability();
        assertEquals(mPreview.getMaximumExposure() - mPreview.getMinimumExposure(), seekBar.getMax());
        assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        //assertEquals(mPreview.getMaximumExposure() - mPreview.getMinimumExposure(), seekBar.getMax());
        //assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        // need to allow for repeated zero values in seekbar:
        assertTrue(seekBar.getMax() > mPreview.getMaximumExposure() - mPreview.getMinimumExposure());
        assertEquals(mActivity.getExposureSeekbarProgressZero(), seekBar.getProgress());
        assertEquals(mPreview.getCurrentExposure(), mActivity.getExposureSeekbarValue(seekBar.getProgress()));
        Log.d(TAG, "change exposure to 1");
        mActivity.changeExposure(1);
        this.getInstrumentation().waitForIdleSync();
        assertEquals(1, mPreview.getCurrentExposure());
        assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        //assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        assertEquals(mPreview.getCurrentExposure(), mActivity.getExposureSeekbarValue(seekBar.getProgress()));
        Log.d(TAG, "set exposure to min");
        seekBar.setProgress(0);
        this.getInstrumentation().waitForIdleSync();
        Log.d(TAG, "actual exposure is now " + mPreview.getCurrentExposure());
        Log.d(TAG, "expected exposure to be " + mPreview.getMinimumExposure());
        assertEquals(mPreview.getCurrentExposure(), mPreview.getMinimumExposure());
        assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        //assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        assertEquals(0, seekBar.getProgress());
        assertEquals(mPreview.getCurrentExposure(), mActivity.getExposureSeekbarValue(seekBar.getProgress()));
        // test the exposure button clears and reopens without changing exposure level
        clickView(exposureButton);
@@ -2828,7 +2835,9 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
        assertEquals(exposureButton.getVisibility(), View.VISIBLE);
        assertEquals(exposureContainer.getVisibility(), View.VISIBLE);
        assertEquals(mPreview.getCurrentExposure(), mPreview.getMinimumExposure());
        assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        //assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        assertEquals(0, seekBar.getProgress());
        assertEquals(mPreview.getCurrentExposure(), mActivity.getExposureSeekbarValue(seekBar.getProgress()));
        // test touch to focus clears the exposure controls
        int [] gui_location = new int[2];
@@ -2843,13 +2852,16 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
        assertEquals(exposureButton.getVisibility(), View.VISIBLE);
        assertEquals(exposureContainer.getVisibility(), View.VISIBLE);
        assertEquals(mPreview.getCurrentExposure(), mPreview.getMinimumExposure());
        assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        //assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        assertEquals(0, seekBar.getProgress());
        assertEquals(mPreview.getCurrentExposure(), mActivity.getExposureSeekbarValue(seekBar.getProgress()));
        Log.d(TAG, "set exposure to -1");
        seekBar.setProgress(-1 - mPreview.getMinimumExposure());
        this.getInstrumentation().waitForIdleSync();
        assertEquals(mPreview.getCurrentExposure(), -1);
        assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
        assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress()); // fine as -1 is below the repeated zeroes
        assertEquals(mPreview.getCurrentExposure(), mActivity.getExposureSeekbarValue(seekBar.getProgress()));
        // clear again so as to not interfere with take photo routine
        TouchUtils.drag(MainActivityTest.this, gui_location[0]+large_step_dist_c, gui_location[0], gui_location[1]+large_step_dist_c, gui_location[1], step_count_c);
@@ -2915,13 +2927,15 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
            if( mPreview.supportsExposures() ) {
                assertEquals(mPreview.getCurrentExposure(), -1);
                assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
                assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress()); // fine as -1 is below the repeated zeroes
                assertEquals(mPreview.getCurrentExposure(), mActivity.getExposureSeekbarValue(seekBar.getProgress()));
                clickView(exposureButton);
                assertEquals(exposureButton.getVisibility(), View.VISIBLE);
                assertEquals(exposureContainer.getVisibility(), View.VISIBLE);
                assertEquals(mPreview.getCurrentExposure(), -1);
                assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress());
                assertEquals(mPreview.getCurrentExposure() - mPreview.getMinimumExposure(), seekBar.getProgress()); // fine as -1 is below the repeated zeroes
                assertEquals(mPreview.getCurrentExposure(), mActivity.getExposureSeekbarValue(seekBar.getProgress()));
            }
        }
    }
+16 −5
Original line number Diff line number Diff line
@@ -255,7 +255,7 @@ public class MainActivity extends AppCompatActivity implements PreferenceFragmen
    private long cached_display_rotation_time_ms;
    private int cached_display_rotation;

    List<Integer> exposure_seekbar_values; // mapping from exposure_seekbar value to preview exposure compensation
    List<Integer> exposure_seekbar_values; // mapping from exposure_seekbar progress value to preview exposure compensation
    private int exposure_seekbar_values_zero; // index in exposure_seekbar_values that maps to zero preview exposure compensation

    @Override
@@ -1487,15 +1487,15 @@ public class MainActivity extends AppCompatActivity implements PreferenceFragmen
                SeekBar seekBar = this.findViewById(R.id.exposure_seekbar);
                int progress = seekBar.getProgress();
                int new_progress = progress + change;
                int current_exposure = exposure_seekbar_values.get(progress);
                if( exposure_seekbar_values.get(new_progress) == 0 && current_exposure != 0 ) {
                int current_exposure = getExposureSeekbarValue(progress);
                if( getExposureSeekbarValue(new_progress) == 0 && current_exposure != 0 ) {
                    // snap to the central repeated zero
                    new_progress = exposure_seekbar_values_zero;
                    change = new_progress - progress;
                }
                else {
                    // skip over the repeated zeroes
                    while( new_progress > 0 && new_progress < exposure_seekbar_values.size()-1 && exposure_seekbar_values.get(new_progress) == current_exposure ) {
                    while( new_progress > 0 && new_progress < exposure_seekbar_values.size()-1 && getExposureSeekbarValue(new_progress) == current_exposure ) {
                        if( change > 0 )
                            change++;
                        else
@@ -1510,6 +1510,17 @@ public class MainActivity extends AppCompatActivity implements PreferenceFragmen
        }
    }

    public int getExposureSeekbarProgressZero() {
        return exposure_seekbar_values_zero;
    }

    /** Returns the exposure compensation corresponding to a progress on the seekbar.
     *  Caller is responsible for checking that progress is within valid range.
     */
    public int getExposureSeekbarValue(int progress) {
        return exposure_seekbar_values.get(progress);
    }

    public void changeISO(int change) {
        if( preview.supportsISORange() ) {
            mainUI.changeSeekbar(R.id.iso_seekbar, change);
@@ -6003,7 +6014,7 @@ public class MainActivity extends AppCompatActivity implements PreferenceFragmen
                            Log.e(TAG, "exposure_seekbar_values is null");
                            return;
                        }
                        int new_exposure = exposure_seekbar_values.get(progress);
                        int new_exposure = getExposureSeekbarValue(progress);
                        if( fromUser ) {
                            // check if not scrolling past the repeated zeroes
                            if( preview.getCurrentExposure() != new_exposure ) {