From b7dcf9f20708376dfd14f9db6b41addc2f92e5c6 Mon Sep 17 00:00:00 2001 From: Sascha Haeberling Date: Wed, 13 Nov 2013 19:04:21 -0800 Subject: Fix issue of focus indicator staying on without being hidden Bug: 11505806 A mix up in the previous 100% CL caused this. This CL here also makes it more robust by making the 100% extra time time-based instead of frame-based. Change-Id: I52c53d4b5816570c2c805e0e8ff193de684f2a64 --- src/com/android/camera/ui/ProgressRenderer.java | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'src/com/android/camera/ui/ProgressRenderer.java') diff --git a/src/com/android/camera/ui/ProgressRenderer.java b/src/com/android/camera/ui/ProgressRenderer.java index 1945dcf9b..500293133 100644 --- a/src/com/android/camera/ui/ProgressRenderer.java +++ b/src/com/android/camera/ui/ProgressRenderer.java @@ -43,11 +43,13 @@ public class ProgressRenderer { private VisibilityListener mVisibilityListener; /** - * After we reach 100%, keep on painting the progress for nother x frames + * After we reach 100%, keep on painting the progress for another x milliseconds * before hiding it. */ - private static final int SHOW_PROGRESS_X_ADDITIONAL_FRAMES = 5; - private int showProgressXMoreFrames; + private static final int SHOW_PROGRESS_X_ADDITIONAL_MS = 100; + + /** When to hide the progress indicator. */ + private long mTimeToHide = 0; public ProgressRenderer(Context context) { mProgressRadius = context.getResources().getDimensionPixelSize(R.dimen.pie_progress_radius); @@ -78,6 +80,7 @@ public class ProgressRenderer { // We hide the progress once we drew the 100% state once. if (percent < 100) { mVisible = true; + mTimeToHide = System.currentTimeMillis() + SHOW_PROGRESS_X_ADDITIONAL_MS; } } @@ -96,17 +99,11 @@ public class ProgressRenderer { canvas.drawArc(mArcBounds, -90, mProgressAngleDegrees, false, mProgressPaint); // After we reached 100%, we paint the progress renderer for another x - // frames until we hide it. - if (mProgressAngleDegrees == 360) { - if (showProgressXMoreFrames <= 0) { - showProgressXMoreFrames = SHOW_PROGRESS_X_ADDITIONAL_FRAMES; - } else { - if (--showProgressXMoreFrames == 0) { - mVisible = false; - if (mVisibilityListener != null) { - mVisibilityListener.onHidden(); - } - } + // milliseconds until we hide it. + if (mProgressAngleDegrees == 360 && System.currentTimeMillis() > mTimeToHide) { + mVisible = false; + if (mVisibilityListener != null) { + mVisibilityListener.onHidden(); } } } -- cgit v1.2.3