Index: chrome/android/java/src/org/chromium/chrome/browser/widget/LoadingView.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkLoadingView.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/LoadingView.java |
similarity index 67% |
rename from chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkLoadingView.java |
rename to chrome/android/java/src/org/chromium/chrome/browser/widget/LoadingView.java |
index 3b3311610fcffc50eb497d136ccf40f32730745f..17a339123feba1e5ae2204844a22a9d6c4ce0fab 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkLoadingView.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/LoadingView.java |
@@ -2,37 +2,33 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-package org.chromium.chrome.browser.enhancedbookmarks; |
+package org.chromium.chrome.browser.widget; |
import android.animation.Animator; |
import android.animation.AnimatorListenerAdapter; |
import android.content.Context; |
+import android.os.SystemClock; |
import android.util.AttributeSet; |
import android.view.View; |
-import android.widget.FrameLayout; |
import android.widget.ProgressBar; |
-import org.chromium.chrome.R; |
import org.chromium.ui.interpolators.BakedBezierInterpolator; |
/** |
- * View for showing loading content animation. The animation logic follows the Android loading |
- * content UI guideline. |
+ * A {@link ProgressBar} that understands the hiding/showing policy defined in Material Design. |
*/ |
-public class EnhancedBookmarkLoadingView extends FrameLayout { |
+public class LoadingView extends ProgressBar { |
private static final int LOADING_ANIMATION_DELAY_MS = 500; |
private static final int MINIMUM_ANIMATION_SHOW_TIME_MS = 500; |
private long mStartTime = -1; |
- private ProgressBar mLoadingProgressBar; |
- |
private final Runnable mDelayedShow = new Runnable() { |
@Override |
public void run() { |
- mStartTime = System.currentTimeMillis(); |
- mLoadingProgressBar.setAlpha(1.0f); |
- mLoadingProgressBar.setVisibility(View.VISIBLE); |
+ mStartTime = SystemClock.elapsedRealtime(); |
+ setVisibility(View.VISIBLE); |
+ setAlpha(1.0f); |
} |
}; |
@@ -52,16 +48,17 @@ public class EnhancedBookmarkLoadingView extends FrameLayout { |
}; |
/** |
- * Constructor for inflating from XML. |
+ * Constructor for creating the view programatically. |
*/ |
- public EnhancedBookmarkLoadingView(Context context, AttributeSet attrs) { |
- super(context, attrs); |
+ public LoadingView(Context context) { |
+ super(context); |
} |
- @Override |
- protected void onFinishInflate() { |
- super.onFinishInflate(); |
- mLoadingProgressBar = (ProgressBar) findViewById(R.id.eb_loading_circle); |
+ /** |
+ * Constructor for inflating from XML. |
+ */ |
+ public LoadingView(Context context, AttributeSet attrs) { |
+ super(context, attrs); |
} |
/** |
@@ -71,10 +68,7 @@ public class EnhancedBookmarkLoadingView extends FrameLayout { |
removeCallbacks(mDelayedShow); |
removeCallbacks(mDelayedHide); |
- setVisibility(VISIBLE); |
- setAlpha(1.0f); |
- mLoadingProgressBar.setVisibility(GONE); |
- |
+ setVisibility(GONE); |
postDelayed(mDelayedShow, LOADING_ANIMATION_DELAY_MS); |
} |
@@ -86,11 +80,9 @@ public class EnhancedBookmarkLoadingView extends FrameLayout { |
removeCallbacks(mDelayedShow); |
removeCallbacks(mDelayedHide); |
- if (mLoadingProgressBar.getVisibility() == VISIBLE) { |
+ if (getVisibility() == VISIBLE) { |
postDelayed(mDelayedHide, Math.max(0, |
- mStartTime + MINIMUM_ANIMATION_SHOW_TIME_MS - System.currentTimeMillis())); |
- } else { |
- setVisibility(GONE); |
+ mStartTime + MINIMUM_ANIMATION_SHOW_TIME_MS - SystemClock.elapsedRealtime())); |
} |
} |
} |