0
0
mirror of https://git.code.sf.net/p/opencamera/code.git synced 2024-09-20 03:52:26 +02:00

Manual focus and focus bracketing seekbars weren't being hidden when in immersive mode.

This commit is contained in:
Mark Harman 2020-05-23 21:16:20 +01:00
parent 81eb562522
commit ee48d46d7f
4 changed files with 131 additions and 1 deletions

View File

@ -50,6 +50,7 @@
<pre>
Version 1.48.2 (Work in progress)
FIXED Manual focus and focus bracketing seekbars weren't being hidden when in immersive mode.
UPDATED Selecting remote device type for Bluetooth remote control no longer calls DeviceScanner
activity directly; DeviceScanner activity no longer exported.

View File

@ -4730,6 +4730,9 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
View takePhotoButton = mActivity.findViewById(net.sourceforge.opencamera.R.id.take_photo);
View pauseVideoButton = mActivity.findViewById(net.sourceforge.opencamera.R.id.pause_video);
View takePhotoVideoButton = mActivity.findViewById(net.sourceforge.opencamera.R.id.take_photo_when_video_recording);
SeekBar seekBar = mActivity.findViewById(net.sourceforge.opencamera.R.id.focus_seekbar);
SeekBar targetSeekBar = mActivity.findViewById(net.sourceforge.opencamera.R.id.focus_bracketing_target_seekbar);
assertEquals(switchCameraButton.getVisibility(), (mPreview.getCameraControllerManager().getNumberOfCameras() > 1 ? View.VISIBLE : View.GONE));
assertEquals(switchMultiCameraButton.getVisibility(), (mActivity.showSwitchMultiCamIcon() ? View.VISIBLE : View.GONE));
assertEquals(switchVideoButton.getVisibility(), View.VISIBLE);
@ -4743,6 +4746,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
// now wait for immersive mode to kick in
Thread.sleep(6000);
@ -4759,6 +4764,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
subTestTakePhoto(false, true, true, true, false, false, false, false);
@ -4776,6 +4783,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
// wait for immersive mode to kick in again
Thread.sleep(6000);
@ -4792,6 +4801,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
subTestTakePhotoPreviewPaused(true, false);
@ -4809,6 +4820,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
// need to switch video before going back to immersive mode
if( !mPreview.isVideo() ) {
@ -4829,6 +4842,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
// wait for immersive mode to kick in again
Thread.sleep(6000);
@ -4845,6 +4860,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
subTestTakeVideo(false, false, false, true, null, 5000, false, 0);
@ -4863,6 +4880,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
// switch back to photo mode
if( mPreview.isVideo() ) {
@ -4870,6 +4889,108 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
waitUntilCameraOpened();
}
if( mPreview.usingCamera2API() && mPreview.getSupportedFocusValues().contains("focus_mode_manual2") ) {
// now test manual focus seekbar disappears
assertEquals(seekBar.getVisibility(), View.GONE);
switchToFocusValue("focus_mode_manual2");
assertEquals(seekBar.getVisibility(), View.VISIBLE);
// wait for immersive mode to kick in again
Thread.sleep(6000);
assertEquals(switchCameraButton.getVisibility(), View.GONE);
assertEquals(switchMultiCameraButton.getVisibility(), View.GONE);
assertEquals(switchVideoButton.getVisibility(), View.GONE);
assertEquals(exposureButton.getVisibility(), View.GONE);
assertEquals(exposureLockButton.getVisibility(), View.GONE);
assertEquals(audioControlButton.getVisibility(), View.GONE);
assertEquals(popupButton.getVisibility(), View.GONE);
assertEquals(trashButton.getVisibility(), View.GONE);
assertEquals(shareButton.getVisibility(), View.GONE);
assertEquals(zoomSeekBar.getVisibility(), View.GONE);
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
// test touch exits immersive mode
TouchUtils.clickView(MainActivityTest.this, mPreview.getView());
assertEquals(switchCameraButton.getVisibility(), (mPreview.getCameraControllerManager().getNumberOfCameras() > 1 ? View.VISIBLE : View.GONE));
assertEquals(switchMultiCameraButton.getVisibility(), (mActivity.showSwitchMultiCamIcon() ? View.VISIBLE : View.GONE));
assertEquals(switchVideoButton.getVisibility(), View.VISIBLE);
assertEquals(exposureButton.getVisibility(), exposureVisibility);
assertEquals(exposureLockButton.getVisibility(), exposureLockVisibility);
assertEquals(audioControlButton.getVisibility(), (has_audio_control_button ? View.VISIBLE : View.GONE));
assertEquals(popupButton.getVisibility(), View.VISIBLE);
assertEquals(trashButton.getVisibility(), View.GONE);
assertEquals(shareButton.getVisibility(), View.GONE);
assertEquals(zoomSeekBar.getVisibility(), View.VISIBLE);
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.VISIBLE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
switchToFocusValue("focus_mode_continuous_picture");
}
if( mPreview.usingCamera2API() && mActivity.supportsFocusBracketing() ) {
// now test focus bracketing seekbars disappear
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
settings = PreferenceManager.getDefaultSharedPreferences(mActivity);
editor = settings.edit();
editor.putString(PreferenceKeys.PhotoModePreferenceKey, "preference_photo_mode_focus_bracketing");
editor.apply();
updateForSettings();
assertEquals(seekBar.getVisibility(), View.VISIBLE);
assertEquals(targetSeekBar.getVisibility(), View.VISIBLE);
// wait for immersive mode to kick in again
Thread.sleep(6000);
assertEquals(switchCameraButton.getVisibility(), View.GONE);
assertEquals(switchMultiCameraButton.getVisibility(), View.GONE);
assertEquals(switchVideoButton.getVisibility(), View.GONE);
assertEquals(exposureButton.getVisibility(), View.GONE);
assertEquals(exposureLockButton.getVisibility(), View.GONE);
assertEquals(audioControlButton.getVisibility(), View.GONE);
assertEquals(popupButton.getVisibility(), View.GONE);
assertEquals(trashButton.getVisibility(), View.GONE);
assertEquals(shareButton.getVisibility(), View.GONE);
assertEquals(zoomSeekBar.getVisibility(), View.GONE);
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
// test touch exits immersive mode
TouchUtils.clickView(MainActivityTest.this, mPreview.getView());
assertEquals(switchCameraButton.getVisibility(), (mPreview.getCameraControllerManager().getNumberOfCameras() > 1 ? View.VISIBLE : View.GONE));
assertEquals(switchMultiCameraButton.getVisibility(), (mActivity.showSwitchMultiCamIcon() ? View.VISIBLE : View.GONE));
assertEquals(switchVideoButton.getVisibility(), View.VISIBLE);
assertEquals(exposureButton.getVisibility(), exposureVisibility);
assertEquals(exposureLockButton.getVisibility(), exposureLockVisibility);
assertEquals(audioControlButton.getVisibility(), (has_audio_control_button ? View.VISIBLE : View.GONE));
assertEquals(popupButton.getVisibility(), View.VISIBLE);
assertEquals(trashButton.getVisibility(), View.GONE);
assertEquals(shareButton.getVisibility(), View.GONE);
assertEquals(zoomSeekBar.getVisibility(), View.VISIBLE);
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.VISIBLE);
assertEquals(targetSeekBar.getVisibility(), View.VISIBLE);
settings = PreferenceManager.getDefaultSharedPreferences(mActivity);
editor = settings.edit();
editor.putString(PreferenceKeys.PhotoModePreferenceKey, "photo_mode_std");
editor.apply();
updateForSettings();
}
if( mPreview.usingCamera2API() && mPreview.supportsISORange() ) {
// now test exposure button disappears when in manual ISO mode
switchToISO(100);
@ -4889,6 +5010,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
assertEquals(takePhotoButton.getVisibility(), View.VISIBLE);
assertEquals(pauseVideoButton.getVisibility(), View.GONE);
assertEquals(takePhotoVideoButton.getVisibility(), View.GONE);
assertEquals(seekBar.getVisibility(), View.GONE);
assertEquals(targetSeekBar.getVisibility(), View.GONE);
}
}

View File

@ -4303,7 +4303,7 @@ public class MainActivity extends Activity {
setManualFocusSeekBarVisibility(is_target_distance);
}
private boolean showManualFocusSeekbar(final boolean is_target_distance) {
public boolean showManualFocusSeekbar(final boolean is_target_distance) {
boolean is_visible = preview.getCurrentFocusValue() != null && this.getPreview().getCurrentFocusValue().equals("focus_mode_manual2");
if( is_target_distance ) {
is_visible = is_visible && (applicationInterface.getPhotoMode() == MyApplicationInterface.PhotoMode.FocusBracketing) && !preview.isVideo();

View File

@ -1064,6 +1064,8 @@ public class MainUI {
View settingsButton = main_activity.findViewById(R.id.settings);
View zoomControls = main_activity.findViewById(R.id.zoom);
View zoomSeekBar = main_activity.findViewById(R.id.zoom_seekbar);
View focusSeekBar = main_activity.findViewById(R.id.focus_seekbar);
View focusBracketingTargetSeekBar = main_activity.findViewById(R.id.focus_bracketing_target_seekbar);
if( main_activity.getPreview().getCameraControllerManager().getNumberOfCameras() > 1 )
switchCameraButton.setVisibility(visibility);
if( main_activity.showSwitchMultiCamIcon() )
@ -1103,6 +1105,10 @@ public class MainUI {
if( main_activity.getPreview().supportsZoom() && sharedPreferences.getBoolean(PreferenceKeys.ShowZoomSliderControlsPreferenceKey, true) ) {
zoomSeekBar.setVisibility(visibility);
}
if( main_activity.showManualFocusSeekbar(false) )
focusSeekBar.setVisibility(visibility);
if( main_activity.showManualFocusSeekbar(true) )
focusBracketingTargetSeekBar.setVisibility(visibility);
String pref_immersive_mode = sharedPreferences.getString(PreferenceKeys.ImmersiveModePreferenceKey, "immersive_mode_low_profile");
if( pref_immersive_mode.equals("immersive_mode_everything") ) {
if( sharedPreferences.getBoolean(PreferenceKeys.ShowTakePhotoPreferenceKey, true) ) {