Loading app/src/androidTest/java/net/sourceforge/opencamera/test/MainActivityTest.java +23 −9 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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]; Loading @@ -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); Loading Loading @@ -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())); } } } Loading app/src/main/java/net/sourceforge/opencamera/MainActivity.java +16 −5 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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); Loading Loading @@ -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 ) { Loading Loading
app/src/androidTest/java/net/sourceforge/opencamera/test/MainActivityTest.java +23 −9 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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]; Loading @@ -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); Loading Loading @@ -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())); } } } Loading
app/src/main/java/net/sourceforge/opencamera/MainActivity.java +16 −5 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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); Loading Loading @@ -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 ) { Loading