diff options
author | Camera Software Integration <camswint@localhost> | 2015-10-28 16:01:21 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-02-17 12:54:54 -0800 |
commit | 467196121cd51f298ef08aee1847d05270b46c81 (patch) | |
tree | 9206bb03da223bb633d5ec4e2de25512789f09e9 /src/com/android/camera/PhotoModule.java | |
parent | 22c9b14239c5fd517f2ebff84d499e3b30a36551 (diff) | |
download | android_packages_apps_Snap-467196121cd51f298ef08aee1847d05270b46c81.tar.gz android_packages_apps_Snap-467196121cd51f298ef08aee1847d05270b46c81.tar.bz2 android_packages_apps_Snap-467196121cd51f298ef08aee1847d05270b46c81.zip |
SnapdragonCamera: Implementing SelfieFlash feature
Introducing SelfieFlash feature.
Change-Id: I7b73d9db585038640b715092b01e037538ef68aa
CRs-Fixed: 937232
Diffstat (limited to 'src/com/android/camera/PhotoModule.java')
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 8a0533a1d..36fde8b06 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -351,6 +351,23 @@ public class PhotoModule private int mJpegFileSizeEstimation = 0; private int mRemainingPhotos = -1; + private static final int SELFIE_FLASH_DURATION = 680; + + private class SelfieThread extends Thread { + public void run() { + try { + Thread.sleep(SELFIE_FLASH_DURATION); + mActivity.runOnUiThread(new Runnable() { + public void run() { + mFocusManager.doSnap(); + } + }); + } catch(InterruptedException e) { + } + selfieThread = null; + } + } + private SelfieThread selfieThread; private MediaSaveService.OnMediaSavedListener mOnMediaSavedListener = new MediaSaveService.OnMediaSavedListener() { @@ -1157,6 +1174,7 @@ public class PhotoModule public void onPictureTaken(final byte [] jpegData, CameraProxy camera) { Log.d(TAG, "JpegPictureCallback: onPictureTaken()"); if (mCameraState != LONGSHOT) { + mUI.stopSelfieFlash(); mUI.enableShutter(true); } if (mPaused) { @@ -1864,6 +1882,9 @@ public class PhotoModule } mUI.overrideSettings(CameraSettings.KEY_FLASH_MODE, flashMode); } + + if(mCameraId != CameraHolder.instance().getFrontCameraId()) + CameraSettings.removePreferenceFromScreen(mPreferenceGroup, CameraSettings.KEY_SELFIE_FLASH); } private void overrideCameraSettings(final String flashMode, @@ -2152,8 +2173,25 @@ public class PhotoModule mActivity.getString(R.string.pref_camera_zsl_default)); mUI.overrideSettings(CameraSettings.KEY_ZSL, zsl); mUI.startCountDown(seconds, playSound); + } else { mSnapshotOnIdle = false; + initiateSnap(); + } + } + + private void initiateSnap() + { + if(mPreferences.getString(CameraSettings.KEY_SELFIE_FLASH, + mActivity.getString(R.string.pref_selfie_flash_default)) + .equalsIgnoreCase("on") && + mCameraId == CameraHolder.instance().getFrontCameraId()) { + mUI.startSelfieFlash(); + if(selfieThread == null) { + selfieThread = new SelfieThread(); + selfieThread.start(); + } + } else { mFocusManager.doSnap(); } mShutterPressing = false; @@ -2324,6 +2362,11 @@ public class PhotoModule mSensorManager.unregisterListener(this, msensor); } + if(selfieThread != null) { + selfieThread.interrupt(); + } + mUI.stopSelfieFlash(); + Log.d(TAG, "remove idle handleer in onPause"); removeIdleHandler(); } @@ -4301,7 +4344,7 @@ public class PhotoModule @Override public void onCountDownFinished() { mSnapshotOnIdle = false; - mFocusManager.doSnap(); + initiateSnap(); mFocusManager.onShutterUp(); mUI.overrideSettings(CameraSettings.KEY_ZSL, null); mUI.showUIAfterCountDown(); |