diff options
author | Santhosh Kumar H E <skhara@codeaurora.org> | 2013-10-25 14:32:17 +0530 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2013-10-31 19:40:21 -0600 |
commit | d7dfbf86ae65934a8597af6d3c6e49d70a0956e1 (patch) | |
tree | 45282d46dc5b4f689c9808d9cf6c6fd1e594b4a4 | |
parent | ac01520bf3423dd9e01db774c850c4709ae7e20f (diff) | |
download | android_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.swo | bin | 0 -> 24576 bytes | |||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 50 |
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 Binary files differnew file mode 100644 index 000000000..96f5ef2eb --- /dev/null +++ b/src/com/android/camera/.PhotoModule.java.swo 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); } } |