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