From 6aa66155d46a86c6196f86104ca4431f6558fd63 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 18 Jun 2016 20:17:15 +0200 Subject: [PATCH] make Focus Before Capture optional, disabled by default --- .../com/simplemobiletools/camera/Config.java | 8 +++++ .../simplemobiletools/camera/Constants.java | 1 + .../com/simplemobiletools/camera/Preview.java | 9 ++++- .../camera/SettingsActivity.java | 13 ++++++++ app/src/main/res/layout/activity_settings.xml | 33 +++++++++++++++++-- app/src/main/res/values/strings.xml | 1 + 6 files changed, 61 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/simplemobiletools/camera/Config.java b/app/src/main/java/com/simplemobiletools/camera/Config.java index b949791f..29f70f51 100644 --- a/app/src/main/java/com/simplemobiletools/camera/Config.java +++ b/app/src/main/java/com/simplemobiletools/camera/Config.java @@ -21,4 +21,12 @@ public class Config { public void setLongTapEnabled(boolean enabled) { prefs.edit().putBoolean(Constants.LONG_TAP, enabled).apply(); } + + public boolean getFocusBeforeCaptureEnabled() { + return prefs.getBoolean(Constants.FOCUS_BEFORE_CAPTURE, false); + } + + public void setFocusBeforeCaptureEnabled(boolean enabled) { + prefs.edit().putBoolean(Constants.FOCUS_BEFORE_CAPTURE, enabled).apply(); + } } diff --git a/app/src/main/java/com/simplemobiletools/camera/Constants.java b/app/src/main/java/com/simplemobiletools/camera/Constants.java index b10bad13..3f58b22a 100644 --- a/app/src/main/java/com/simplemobiletools/camera/Constants.java +++ b/app/src/main/java/com/simplemobiletools/camera/Constants.java @@ -8,4 +8,5 @@ public class Constants { // Shared preferences public static final String PREFS_KEY = "Camera"; public static final String LONG_TAP = "long_tap"; + public static final String FOCUS_BEFORE_CAPTURE = "focus_before_capture"; } diff --git a/app/src/main/java/com/simplemobiletools/camera/Preview.java b/app/src/main/java/com/simplemobiletools/camera/Preview.java index e5b86e6d..a7e0d3e4 100644 --- a/app/src/main/java/com/simplemobiletools/camera/Preview.java +++ b/app/src/main/java/com/simplemobiletools/camera/Preview.java @@ -48,6 +48,7 @@ public class Preview extends ViewGroup implements SurfaceHolder.Callback, View.O private static boolean isSurfaceCreated; private static boolean switchToVideoAsap; private static boolean isVideoCaptureIntent; + private static boolean focusBeforeCapture; private boolean setupPreviewAfterMeasure; private static String curVideoPath; private static int lastClickX; @@ -145,6 +146,8 @@ public class Preview extends ViewGroup implements SurfaceHolder.Callback, View.O final boolean isLongTapEnabled = Config.newInstance(getContext()).getLongTapEnabled(); surfaceView.setOnLongClickListener(isLongTapEnabled ? this : null); + focusBeforeCapture = Config.newInstance(getContext()).getFocusBeforeCaptureEnabled(); + return true; } @@ -194,7 +197,11 @@ public class Preview extends ViewGroup implements SurfaceHolder.Callback, View.O } public void tryTakePicture() { - focusArea(true); + if (focusBeforeCapture) { + focusArea(true); + } else { + takePicture(); + } } private void takePicture() { diff --git a/app/src/main/java/com/simplemobiletools/camera/SettingsActivity.java b/app/src/main/java/com/simplemobiletools/camera/SettingsActivity.java index cacdabbb..b30bcade 100644 --- a/app/src/main/java/com/simplemobiletools/camera/SettingsActivity.java +++ b/app/src/main/java/com/simplemobiletools/camera/SettingsActivity.java @@ -10,6 +10,7 @@ import butterknife.OnClick; public class SettingsActivity extends AppCompatActivity { @BindView(R.id.settings_long_tap) SwitchCompat longTapSwitch; + @BindView(R.id.settings_focus_before_capture) SwitchCompat focusBeforeCaptureSwitch; private static Config mConfig; @@ -19,16 +20,28 @@ public class SettingsActivity extends AppCompatActivity { setContentView(R.layout.activity_settings); mConfig = Config.newInstance(getApplicationContext()); ButterKnife.bind(this); + setupLongTap(); + setupFocusBeforeCapture(); } private void setupLongTap() { longTapSwitch.setChecked(mConfig.getLongTapEnabled()); } + private void setupFocusBeforeCapture() { + focusBeforeCaptureSwitch.setChecked(mConfig.getFocusBeforeCaptureEnabled()); + } + @OnClick(R.id.settings_long_tap_holder) public void handleLongTapToTrigger() { longTapSwitch.setChecked(!longTapSwitch.isChecked()); mConfig.setLongTapEnabled(longTapSwitch.isChecked()); } + + @OnClick(R.id.settings_focus_before_capture_holder) + public void handleFocusBeforeCapture() { + focusBeforeCaptureSwitch.setChecked(!focusBeforeCaptureSwitch.isChecked()); + mConfig.setFocusBeforeCaptureEnabled(focusBeforeCaptureSwitch.isChecked()); + } } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 103cf98b..7d4c2efb 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -1,9 +1,10 @@ - + android:layout_height="match_parent" + android:orientation="vertical"> - + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5e212c85..0943fb69 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -15,6 +15,7 @@ Settings Long tap to capture + Focus before capture About