summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanthosh Kumar H E <skhara@codeaurora.org>2013-10-25 14:32:17 +0530
committerLinux Build Service Account <lnxbuild@localhost>2013-10-31 19:40:21 -0600
commitd7dfbf86ae65934a8597af6d3c6e49d70a0956e1 (patch)
tree45282d46dc5b4f689c9808d9cf6c6fd1e594b4a4
parentac01520bf3423dd9e01db774c850c4709ae7e20f (diff)
downloadandroid_packages_apps_Snap-d7dfbf86ae65934a8597af6d3c6e49d70a0956e1.tar.gz
android_packages_apps_Snap-d7dfbf86ae65934a8597af6d3c6e49d70a0956e1.tar.bz2
android_packages_apps_Snap-d7dfbf86ae65934a8597af6d3c6e49d70a0956e1.zip
Camera: Configure skin tone in main handler thread..
- A "ConcurrentModificationException" is possibleduring concurrent configuration of camera parameterswhen skin tone is updated. To avoid this skin tone is applied through the main handler. (cherry picked from commit I2176e615432b1a25ff439b3f105ea9e498ae8803) Change-Id: If20c34dc70fbf6fa3fc9ddfefadd71bc9db2cffb Conflicts: src/com/android/camera/PhotoModule.java Conflicts: src/com/android/camera/PhotoModule.java (cherry picked from commit 37c435a3b61b435ab677cc013af02c8b48d76dc9) (cherry picked from commit 5341b096004fa59d9732651fe03ffc161bc61156)
-rw-r--r--src/com/android/camera/.PhotoModule.java.swobin0 -> 24576 bytes
-rw-r--r--src/com/android/camera/PhotoModule.java50
2 files changed, 22 insertions, 28 deletions
diff --git a/src/com/android/camera/.PhotoModule.java.swo b/src/com/android/camera/.PhotoModule.java.swo
new file mode 100644
index 000000000..96f5ef2eb
--- /dev/null
+++ b/src/com/android/camera/.PhotoModule.java.swo
Binary files differ
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index cc5b67f47..f4396b1c6 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -131,6 +131,9 @@ public class PhotoModule
private static final int CAMERA_DISABLED = 10;
private static final int SET_SKIN_TONE_FACTOR = 11;
private static final int SET_PHOTO_UI_PARAMS = 12;
+ private static final int SWITCH_TO_GCAM_MODULE = 13;
+ private static final int CONFIGURE_SKIN_TONE_FACTOR = 14;
+
// The subset of parameters we need to update in setCameraParameters().
private static final int UPDATE_PARAM_INITIALIZE = 1;
private static final int UPDATE_PARAM_ZOOM = 2;
@@ -394,32 +397,19 @@ public class PhotoModule
R.string.camera_disabled);
break;
}
- case SET_SKIN_TONE_FACTOR: {
- Log.v(TAG, "set tone bar: mSceneMode = " + mSceneMode);
- setSkinToneFactor();
- mSeekBarInitialized = true;
- // skin tone ie enabled only for party and portrait BSM
- // when color effects are not enabled
- String colorEffect = mPreferences.getString(
- CameraSettings.KEY_COLOR_EFFECT,
- mActivity.getString(R.string.pref_camera_coloreffect_default));
- if((Parameters.SCENE_MODE_PARTY.equals(mSceneMode) ||
- Parameters.SCENE_MODE_PORTRAIT.equals(mSceneMode))&&
- (Parameters.EFFECT_NONE.equals(colorEffect))) {
- ;
- }
- else{
- Log.v(TAG, "Skin tone bar: disable");
- disableSkinToneSeekBar();
+
+ case SWITCH_TO_GCAM_MODULE: {
+ mActivity.onModuleSelected(ModuleSwitcher.GCAM_MODULE_INDEX);
+ }
+
+ case CONFIGURE_SKIN_TONE_FACTOR: {
+ if (isCameraIdle()) {
+ mParameters = mCameraDevice.getParameters();
+ mParameters.set("skinToneEnhancement", String.valueOf(msg.arg1));
+ mCameraDevice.setParameters(mParameters);
}
break;
- }
- case SET_PHOTO_UI_PARAMS: {
- setCameraParametersWhenIdle(UPDATE_PARAM_PREFERENCE);
- mUI.updateOnScreenIndicators(mParameters, mPreferenceGroup,
- mPreferences);
- break;
- }
+ }
}
}
}
@@ -990,6 +980,11 @@ public class PhotoModule
// no support
}
+ private OnSeekBarChangeListener mskinToneSeekListener = new OnSeekBarChangeListener() {
+ public void onStartTrackingTouch(SeekBar bar) {
+ // no support
+ }
+
public void onProgressChanged(SeekBar bar, int progress, boolean fromtouch) {
int value = (progress + MIN_SCE_FACTOR) * SCE_FACTOR_STEP;
if(progress > (MAX_SCE_FACTOR - MIN_SCE_FACTOR)/2){
@@ -1002,11 +997,10 @@ public class PhotoModule
LeftValue.setText("");
RightValue.setText("");
}
- if(value != mskinToneValue && mCameraDevice != null) {
+ if (value != mskinToneValue && mCameraDevice != null) {
mskinToneValue = value;
- mParameters = mCameraDevice.getParameters();
- mParameters.set("skinToneEnhancement", String.valueOf(mskinToneValue));
- mCameraDevice.setParameters(mParameters);
+ Message msg = mHandler.obtainMessage(CONFIGURE_SKIN_TONE_FACTOR, mskinToneValue, 0);
+ mHandler.sendMessage(msg);
}
}