diff options
author | Santhosh Kumar H E <skhara@codeaurora.org> | 2013-12-05 16:36:52 +0530 |
---|---|---|
committer | Santhosh Kumar H E <skhara@codeaurora.org> | 2013-12-06 18:58:24 +0530 |
commit | dbdb7620da136374eea95170261032f910015db0 (patch) | |
tree | 007242cdb44941ecb855751c85da69aa97cc6a43 /src/com/android/camera/ui/PieRenderer.java | |
parent | 1c7734057201ffd1b6d165d9e24793ef3d213043 (diff) | |
parent | df2b0819907c440a660e228414a18184732816d1 (diff) | |
download | android_packages_apps_Snap-dbdb7620da136374eea95170261032f910015db0.tar.gz android_packages_apps_Snap-dbdb7620da136374eea95170261032f910015db0.tar.bz2 android_packages_apps_Snap-dbdb7620da136374eea95170261032f910015db0.zip |
Merge remote-tracking branch into merge_branch
Delay onResume tasks to speed up lockscreen onResume->onPause->onResume launch sequence.
Import translations. DO NOT MERGE
gcam: Clean up placeholders, and add deletion robustness.
Fix issue of focus indicator staying on without being hidden
Ensure view size gets updated after phone decors change.
Show the 100% state of the progress at least one frame.
Add parameters and deduplicate parameter changes
Revert parallel opening camera in photo mode.
Differentiate the InProgressData from the normal PhotoData.
Close mode menus if another control is touched
Start gcam module directly when handling capture intent.
Import translations. DO NOT MERGE
Add a null check to fix NPE
Add logging to various actions
Ensure mOpenCameraThread has been setup before dereferencing.
Add logging to various actions
Ensure mOpenCameraThread has been setup before dereferencing.
Add GCam progress indicator.
hide preview cover on arrival of new preview data if hidden
Fix photo mode is getting stuck in a single CameraState.
...
Conflicts:
res/layout/photo_module.xml
res/values/arrays.xml
src/com/android/camera/CameraActivity.java
src/com/android/camera/PhotoUI.java
src/com/android/camera/Storage.java
src/com/android/camera/WideAnglePanoramaModule.java
src/com/android/camera/ui/FilmStripView.java
Change-Id: Ic41b4e7e07b2b0ed7936b78a6c5f05270d05985f
Diffstat (limited to 'src/com/android/camera/ui/PieRenderer.java')
-rw-r--r-- | src/com/android/camera/ui/PieRenderer.java | 59 |
1 files changed, 40 insertions, 19 deletions
diff --git a/src/com/android/camera/ui/PieRenderer.java b/src/com/android/camera/ui/PieRenderer.java index 008bc40ca..0039aa22c 100644 --- a/src/com/android/camera/ui/PieRenderer.java +++ b/src/com/android/camera/ui/PieRenderer.java @@ -16,9 +16,6 @@ package com.android.camera.ui; -import java.util.ArrayList; -import java.util.List; - import android.animation.Animator; import android.animation.Animator.AnimatorListener; import android.animation.ValueAnimator; @@ -40,12 +37,19 @@ import android.view.animation.Animation; import android.view.animation.Transformation; import com.android.camera.drawable.TextDrawable; +import com.android.camera.ui.ProgressRenderer.VisibilityListener; import com.android.camera2.R; +import java.util.ArrayList; +import java.util.List; + +/** + * An overlay renderer that is used to display focus state and progress state. + */ public class PieRenderer extends OverlayRenderer implements FocusIndicator { - private static final String TAG = "CAM Pie"; + private static final String TAG = "PieRenderer"; // Sometimes continuous autofocus starts and stops several times quickly. // These states are used to make sure the animation is run for at least some @@ -143,7 +147,7 @@ public class PieRenderer extends OverlayRenderer private int mAngleZone; private float mCenterAngle; - + private ProgressRenderer mProgressRenderer; private Handler mHandler = new Handler() { public void handleMessage(Message msg) { @@ -227,6 +231,7 @@ public class PieRenderer extends OverlayRenderer mLabel.setDropShadow(true); mDeadZone = res.getDimensionPixelSize(R.dimen.pie_deadzone_width); mAngleZone = res.getDimensionPixelSize(R.dimen.pie_anglezone_width); + mProgressRenderer = new ProgressRenderer(ctx); } private PieItem getRoot() { @@ -309,6 +314,10 @@ public class PieRenderer extends OverlayRenderer return mState == STATE_PIE && isVisible(); } + public void setProgress(int percent) { + mProgressRenderer.setProgress(percent); + } + private void fadeIn() { mFadeIn = new ValueAnimator(); mFadeIn.setFloatValues(0f, 1f); @@ -524,6 +533,8 @@ public class PieRenderer extends OverlayRenderer @Override public void onDraw(Canvas canvas) { + mProgressRenderer.onDraw(canvas, mFocusX, mFocusY); + float alpha = 1; if (mXFade != null) { alpha = (Float) mXFade.getAnimatedValue(); @@ -706,6 +717,11 @@ public class PieRenderer extends OverlayRenderer return false; } + @Override + public boolean isVisible() { + return super.isVisible() || mProgressRenderer.isVisible(); + } + private boolean pulledToCenter(PointF polarCoords) { return polarCoords.y < mArcRadius - mRadiusInc; } @@ -918,17 +934,6 @@ public class PieRenderer extends OverlayRenderer setCircle(mFocusX, mFocusY); } - public void alignFocus(int x, int y) { - mOverlay.removeCallbacks(mDisappear); - mAnimation.cancel(); - mAnimation.reset(); - mFocusX = x; - mFocusY = y; - mDialAngle = DIAL_HORIZONTAL; - setCircle(x, y); - mFocused = false; - } - public int getSize() { return 2 * mCircleSize; } @@ -1022,11 +1027,27 @@ public class PieRenderer extends OverlayRenderer mState = STATE_IDLE; } + public void clear(boolean waitUntilProgressIsHidden) { + if (mState == STATE_PIE) + return; + cancelFocus(); + + if (waitUntilProgressIsHidden) { + mProgressRenderer.setVisibilityListener(new VisibilityListener() { + @Override + public void onHidden() { + mOverlay.post(mDisappear); + } + }); + } else { + mOverlay.post(mDisappear); + mProgressRenderer.setVisibilityListener(null); + } + } + @Override public void clear() { - if (mState == STATE_PIE) return; - cancelFocus(); - mOverlay.post(mDisappear); + clear(false); } private void startAnimation(long duration, boolean timeout, |