summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjt1134 <jt1134@gmail.com>2013-01-12 07:35:45 +0100
committerArne Coucheron <arco68@gmail.com>2018-01-26 01:01:45 +0100
commit7c7c54f29c284735dabced81ab58266e389d49fb (patch)
treeeee5fd771cb179df52bc804796d804ebed7f3a90
parent3cb7289b977f4614360bce87a06b6896f18580ba (diff)
downloadandroid_packages_apps_Snap-7c7c54f29c284735dabced81ab58266e389d49fb.tar.gz
android_packages_apps_Snap-7c7c54f29c284735dabced81ab58266e389d49fb.tar.bz2
android_packages_apps_Snap-7c7c54f29c284735dabced81ab58266e389d49fb.zip
Snap: Add touch-to-focus timeout duration settings
Signed-off-by: Michael Bestas <mikeioannina@gmail.com> Change-Id: Ib2c2c152a52b2616dd0da6f071f572d34fe64065
-rw-r--r--res/values/cm_arrays.xml20
-rw-r--r--res/values/cm_strings.xml11
-rwxr-xr-xres/xml/camera_preferences.xml6
-rw-r--r--src/com/android/camera/CameraSettings.java1
-rwxr-xr-xsrc/com/android/camera/FocusOverlayManager.java18
-rw-r--r--src/com/android/camera/PhotoMenu.java2
-rw-r--r--src/com/android/camera/PhotoModule.java5
7 files changed, 58 insertions, 5 deletions
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
index b308c083e..94410cf48 100644
--- a/res/values/cm_arrays.xml
+++ b/res/values/cm_arrays.xml
@@ -24,4 +24,24 @@
<item>@string/setting_off</item>
<item>@string/setting_on</item>
</array>
+
+ <!-- Touch focus duration -->
+ <string-array name="pref_camera_focustime_duration_entries" translatable="false">
+ <item>@string/pref_camera_focustime_entry_5</item>
+ <item>@string/pref_camera_focustime_entry_10</item>
+ <item>@string/pref_camera_focustime_entry_15</item>
+ <item>@string/pref_camera_focustime_entry_20</item>
+ <item>@string/pref_camera_focustime_entry_30</item>
+ <item>@string/pref_camera_focustime_entry_infinite</item>
+ </string-array>
+
+ <!-- Stored in milliseconds -->
+ <string-array name="pref_camera_focustime_duration_values" translatable="false">
+ <item>5000</item>
+ <item>10000</item>
+ <item>15000</item>
+ <item>20000</item>
+ <item>30000</item>
+ <item>0</item>
+ </string-array>
</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index 4263cbfc6..c665a4fdf 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -91,4 +91,15 @@
<string name="pref_camera_max_brightness_title">Bright screen</string>
<string name="pref_camera_max_brightness_default" translatable="false">off</string>
+ <!-- Touch focus duration -->
+ <string name="pref_camera_focustime_title">Touch focus duration</string>
+ <string name="pref_camera_focustime_default" translatable="false">5000</string>
+
+ <string name="pref_camera_focustime_entry_5">5s</string>
+ <string name="pref_camera_focustime_entry_10">10s</string>
+ <string name="pref_camera_focustime_entry_15">15s</string>
+ <string name="pref_camera_focustime_entry_20">20s</string>
+ <string name="pref_camera_focustime_entry_30">30s</string>
+ <string name="pref_camera_focustime_entry_infinite">Infinite</string>
+
</resources>
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml
index 87d194e26..5877eeade 100755
--- a/res/xml/camera_preferences.xml
+++ b/res/xml/camera_preferences.xml
@@ -81,6 +81,12 @@
camera:entries="@array/pref_camera_focusmode_entries"
camera:labelList="@array/pref_camera_focusmode_labels"
camera:entryValues="@array/pref_camera_focusmode_entryvalues" />
+ <ListPreference
+ camera:key="pref_camera_focustime_key"
+ camera:defaultValue="@string/pref_camera_focustime_default"
+ camera:title="@string/pref_camera_focustime_title"
+ camera:entries="@array/pref_camera_focustime_duration_entries"
+ camera:entryValues="@array/pref_camera_focustime_duration_values" />
<ListPreference
camera:key="pref_camera_ae_bracket_hdr_key"
camera:defaultValue="@string/pref_camera_ae_bracket_hdr_default"
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index b12a6bf3a..c84eb3774 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -65,6 +65,7 @@ public class CameraSettings {
public static final String KEY_PICTURE_SIZE = "pref_camera_picturesize_key";
public static final String KEY_JPEG_QUALITY = "pref_camera_jpegquality_key";
public static final String KEY_FOCUS_MODE = "pref_camera_focusmode_key";
+ public static final String KEY_FOCUS_TIME = "pref_camera_focustime_key";
public static final String KEY_FLASH_MODE = "pref_camera_flashmode_key";
public static final String KEY_VIDEOCAMERA_FLASH_MODE = "pref_camera_video_flashmode_key";
public static final String KEY_WHITE_BALANCE = "pref_camera_whitebalance_key";
diff --git a/src/com/android/camera/FocusOverlayManager.java b/src/com/android/camera/FocusOverlayManager.java
index b87afcf06..eae6e899c 100755
--- a/src/com/android/camera/FocusOverlayManager.java
+++ b/src/com/android/camera/FocusOverlayManager.java
@@ -61,8 +61,8 @@ public class FocusOverlayManager {
private static final int RESET_TOUCH_FOCUS = 0;
private static final int RESET_FACE_DETECTION = 1;
- private static final int RESET_TOUCH_FOCUS_DELAY = 3000;
private static final int RESET_FACE_DETECTION_DELAY = 3000;
+
private int mState = STATE_IDLE;
public static final int STATE_IDLE = 0; // Focus is not active.
public static final int STATE_FOCUSING = 1; // Focus is in progress.
@@ -108,6 +108,8 @@ public class FocusOverlayManager {
public void resumeFaceDetection();
}
+ private int mFocusTime; // time after touch-to-focus
+
public interface Listener {
public void autoFocus();
public void cancelAutoFocus();
@@ -277,6 +279,11 @@ public class FocusOverlayManager {
}
}
+ // set touch-to-focus duration
+ public void setFocusTime(int time) {
+ mFocusTime = time;
+ }
+
public void onAutoFocus(boolean focused, boolean shutterButtonPressed) {
if (mState == STATE_FOCUSING_SNAP_ON_FINISH) {
// Take the picture no matter focus succeeds or fails. No need
@@ -301,8 +308,8 @@ public class FocusOverlayManager {
updateFocusUI();
// If this is triggered by touch focus, cancel focus after a
// while.
- if (mFocusArea != null) {
- mHandler.sendEmptyMessageDelayed(RESET_TOUCH_FOCUS, RESET_TOUCH_FOCUS_DELAY);
+ if ((mFocusArea != null) && (mFocusTime != 0)) {
+ mHandler.sendEmptyMessageDelayed(RESET_TOUCH_FOCUS, mFocusTime);
}
if (shutterButtonPressed) {
// Lock AE & AWB so users can half-press shutter and recompose.
@@ -411,9 +418,10 @@ public class FocusOverlayManager {
autoFocus();
} else { // Just show the indicator in all other cases.
updateFocusUI();
- // Reset the metering area in 3 seconds.
mHandler.removeMessages(RESET_TOUCH_FOCUS);
- mHandler.sendEmptyMessageDelayed(RESET_TOUCH_FOCUS, RESET_TOUCH_FOCUS_DELAY);
+ if (mFocusTime != 0) {
+ mHandler.sendEmptyMessageDelayed(RESET_TOUCH_FOCUS, mFocusTime);
+ }
}
}
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java
index a0d45e141..2656c9691 100644
--- a/src/com/android/camera/PhotoMenu.java
+++ b/src/com/android/camera/PhotoMenu.java
@@ -198,6 +198,7 @@ public class PhotoMenu extends MenuController
CameraSettings.KEY_EXPOSURE,
CameraSettings.KEY_WHITE_BALANCE,
CameraSettings.KEY_QC_CHROMA_FLASH,
+ CameraSettings.KEY_FOCUS_TIME,
CameraSettings.KEY_REDEYE_REDUCTION,
CameraSettings.KEY_SELFIE_MIRROR,
CameraSettings.KEY_SHUTTER_SOUND,
@@ -220,6 +221,7 @@ public class PhotoMenu extends MenuController
CameraSettings.KEY_WHITE_BALANCE,
CameraSettings.KEY_QC_CHROMA_FLASH,
CameraSettings.KEY_FOCUS_MODE,
+ CameraSettings.KEY_FOCUS_TIME,
CameraSettings.KEY_REDEYE_REDUCTION,
CameraSettings.KEY_POWER_SHUTTER,
CameraSettings.KEY_MAX_BRIGHTNESS,
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 68a5b5032..eeb895c39 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -4323,6 +4323,11 @@ public class PhotoModule
mFocusManager.overrideFocusMode(null);
mParameters.setFocusMode(mFocusManager.getFocusMode());
}
+
+ // Set focus time.
+ mFocusManager.setFocusTime(Integer.valueOf(
+ mPreferences.getString(CameraSettings.KEY_FOCUS_TIME,
+ mActivity.getString(R.string.pref_camera_focustime_default))));
} else {
mFocusManager.overrideFocusMode(mParameters.getFocusMode());
if (CameraUtil.isSupported(Parameters.FLASH_MODE_OFF,