From 4fdfa9b157b5f403db3760cfcff750d911ce09a8 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 18 Jun 2016 18:16:43 +0200 Subject: [PATCH] allow disabling the Long tap tp capture feature --- .../com/simplemobiletools/camera/Config.java | 24 ++++++++++++++++ .../simplemobiletools/camera/Constants.java | 4 +++ .../com/simplemobiletools/camera/Preview.java | 4 ++- .../camera/SettingsActivity.java | 18 ++++++++++++ app/src/main/res/layout/activity_settings.xml | 28 +++++++++++++++++-- app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/strings.xml | 1 + 7 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/simplemobiletools/camera/Config.java diff --git a/app/src/main/java/com/simplemobiletools/camera/Config.java b/app/src/main/java/com/simplemobiletools/camera/Config.java new file mode 100644 index 00000000..b949791f --- /dev/null +++ b/app/src/main/java/com/simplemobiletools/camera/Config.java @@ -0,0 +1,24 @@ +package com.simplemobiletools.camera; + +import android.content.Context; +import android.content.SharedPreferences; + +public class Config { + private SharedPreferences prefs; + + public static Config newInstance(Context context) { + return new Config(context); + } + + public Config(Context context) { + prefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE); + } + + public boolean getLongTapEnabled() { + return prefs.getBoolean(Constants.LONG_TAP, true); + } + + public void setLongTapEnabled(boolean enabled) { + prefs.edit().putBoolean(Constants.LONG_TAP, 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 6f2f2ee5..b10bad13 100644 --- a/app/src/main/java/com/simplemobiletools/camera/Constants.java +++ b/app/src/main/java/com/simplemobiletools/camera/Constants.java @@ -4,4 +4,8 @@ public class Constants { public static final int ORIENT_PORTRAIT = 0; public static final int ORIENT_LANDSCAPE_LEFT = 1; public static final int ORIENT_LANDSCAPE_RIGHT = 2; + + // Shared preferences + public static final String PREFS_KEY = "Camera"; + public static final String LONG_TAP = "long_tap"; } diff --git a/app/src/main/java/com/simplemobiletools/camera/Preview.java b/app/src/main/java/com/simplemobiletools/camera/Preview.java index c6f7eb8d..ab68ce9f 100644 --- a/app/src/main/java/com/simplemobiletools/camera/Preview.java +++ b/app/src/main/java/com/simplemobiletools/camera/Preview.java @@ -72,7 +72,6 @@ public class Preview extends ViewGroup implements SurfaceHolder.Callback, View.O canTakePicture = false; surfaceView.setOnTouchListener(this); surfaceView.setOnClickListener(this); - surfaceView.setOnLongClickListener(this); isFlashEnabled = false; isVideoMode = false; isSurfaceCreated = false; @@ -143,6 +142,9 @@ public class Preview extends ViewGroup implements SurfaceHolder.Callback, View.O initRecorder(); } + final boolean isLongTapEnabled = Config.newInstance(getContext()).getLongTapEnabled(); + surfaceView.setOnLongClickListener(isLongTapEnabled ? this : null); + return true; } diff --git a/app/src/main/java/com/simplemobiletools/camera/SettingsActivity.java b/app/src/main/java/com/simplemobiletools/camera/SettingsActivity.java index 75f7e8b6..cacdabbb 100644 --- a/app/src/main/java/com/simplemobiletools/camera/SettingsActivity.java +++ b/app/src/main/java/com/simplemobiletools/camera/SettingsActivity.java @@ -2,15 +2,33 @@ package com.simplemobiletools.camera; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.SwitchCompat; +import butterknife.BindView; import butterknife.ButterKnife; +import butterknife.OnClick; public class SettingsActivity extends AppCompatActivity { + @BindView(R.id.settings_long_tap) SwitchCompat longTapSwitch; + + private static Config mConfig; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); + mConfig = Config.newInstance(getApplicationContext()); ButterKnife.bind(this); + setupLongTap(); + } + + private void setupLongTap() { + longTapSwitch.setChecked(mConfig.getLongTapEnabled()); + } + + @OnClick(R.id.settings_long_tap_holder) + public void handleLongTapToTrigger() { + longTapSwitch.setChecked(!longTapSwitch.isChecked()); + mConfig.setLongTapEnabled(longTapSwitch.isChecked()); } } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 647b54a6..103cf98b 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -3,7 +3,31 @@ android:id="@+id/settings_holder" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_margin="@dimen/activity_margin"> + android:layout_height="match_parent"> + + + + + + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 68b8d14c..a43ad171 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -3,4 +3,5 @@ 32dp 12dp 56dp + 8dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index de226891..5e212c85 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,6 +14,7 @@ Settings + Long tap to capture About