Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/widget/ToolbarProgressBar.java

Issue 2885013004: Remove unused histograms Omnibox.ProgressBar (Closed)
Patch Set: add bug link to obselete tag Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.widget; 5 package org.chromium.chrome.browser.widget;
6 6
7 import android.animation.TimeAnimator; 7 import android.animation.TimeAnimator;
8 import android.animation.TimeAnimator.TimeListener; 8 import android.animation.TimeAnimator.TimeListener;
9 import android.content.Context; 9 import android.content.Context;
10 import android.graphics.Color; 10 import android.graphics.Color;
11 import android.os.Build; 11 import android.os.Build;
12 import android.support.v4.view.ViewCompat; 12 import android.support.v4.view.ViewCompat;
13 import android.text.TextUtils; 13 import android.text.TextUtils;
14 import android.view.ViewGroup; 14 import android.view.ViewGroup;
15 import android.view.accessibility.AccessibilityEvent; 15 import android.view.accessibility.AccessibilityEvent;
16 import android.widget.FrameLayout.LayoutParams; 16 import android.widget.FrameLayout.LayoutParams;
17 import android.widget.ProgressBar; 17 import android.widget.ProgressBar;
18 18
19 import org.chromium.base.ApiCompatibilityUtils; 19 import org.chromium.base.ApiCompatibilityUtils;
20 import org.chromium.base.CommandLine; 20 import org.chromium.base.CommandLine;
21 import org.chromium.base.VisibleForTesting; 21 import org.chromium.base.VisibleForTesting;
22 import org.chromium.base.metrics.RecordHistogram;
23 import org.chromium.chrome.R; 22 import org.chromium.chrome.R;
24 import org.chromium.chrome.browser.ChromeSwitches; 23 import org.chromium.chrome.browser.ChromeSwitches;
25 import org.chromium.chrome.browser.util.ColorUtils; 24 import org.chromium.chrome.browser.util.ColorUtils;
26 import org.chromium.components.variations.VariationsAssociatedData; 25 import org.chromium.components.variations.VariationsAssociatedData;
27 import org.chromium.ui.UiUtils; 26 import org.chromium.ui.UiUtils;
28 import org.chromium.ui.interpolators.BakedBezierInterpolator; 27 import org.chromium.ui.interpolators.BakedBezierInterpolator;
29 28
30 /** 29 /**
31 * Progress bar for use in the Toolbar view. 30 * Progress bar for use in the Toolbar view.
32 */ 31 */
33 public class ToolbarProgressBar extends ClipDrawableProgressBar { 32 public class ToolbarProgressBar extends ClipDrawableProgressBar {
34 33
35 private static final String ANIMATION_FIELD_TRIAL_NAME = "ProgressBarAnimati onAndroid"; 34 private static final String ANIMATION_FIELD_TRIAL_NAME = "ProgressBarAnimati onAndroid";
36 private static final String PROGRESS_BAR_UPDATE_COUNT_HISTOGRAM =
37 "Omnibox.ProgressBarUpdateCount";
38 private static final String PROGRESS_BAR_BREAK_POINT_UPDATE_COUNT_HISTOGRAM =
39 "Omnibox.ProgressBarBreakPointUpdateCount";
40 35
41 /** 36 /**
42 * Interface for progress bar animation interpolation logics. 37 * Interface for progress bar animation interpolation logics.
43 */ 38 */
44 interface AnimationLogic { 39 interface AnimationLogic {
45 /** 40 /**
46 * Resets internal data. It must be called on every loading start. 41 * Resets internal data. It must be called on every loading start.
47 * @param startProgress The progress for the animation to start at. This is used when the 42 * @param startProgress The progress for the animation to start at. This is used when the
48 * animation logic switches. 43 * animation logic switches.
49 */ 44 */
(...skipping 15 matching lines...) Expand all
65 60
66 private static final float THEMED_BACKGROUND_WHITE_FRACTION = 0.2f; 61 private static final float THEMED_BACKGROUND_WHITE_FRACTION = 0.2f;
67 private static final float ANIMATION_WHITE_FRACTION = 0.4f; 62 private static final float ANIMATION_WHITE_FRACTION = 0.4f;
68 63
69 private static final long PROGRESS_FRAME_TIME_CAP_MS = 50; 64 private static final long PROGRESS_FRAME_TIME_CAP_MS = 50;
70 private long mAlphaAnimationDurationMs = 140; 65 private long mAlphaAnimationDurationMs = 140;
71 private long mHidingDelayMs = 100; 66 private long mHidingDelayMs = 100;
72 67
73 private boolean mIsStarted; 68 private boolean mIsStarted;
74 private float mTargetProgress; 69 private float mTargetProgress;
75 private int mTargetProgressUpdateCount;
76 private AnimationLogic mAnimationLogic; 70 private AnimationLogic mAnimationLogic;
77 private boolean mAnimationInitialized; 71 private boolean mAnimationInitialized;
78 private int mMarginTop; 72 private int mMarginTop;
79 private ViewGroup mProgressBarContainer; 73 private ViewGroup mProgressBarContainer;
80 private int mProgressStartCount; 74 private int mProgressStartCount;
81 private int mThemeColor; 75 private int mThemeColor;
82 76
83 /** Whether or not to use the status bar color as the background of the tool bar. */ 77 /** Whether or not to use the status bar color as the background of the tool bar. */
84 private boolean mUseStatusBarColorAsBackground; 78 private boolean mUseStatusBarColorAsBackground;
85 79
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 public void start() { 249 public void start() {
256 mIsStarted = true; 250 mIsStarted = true;
257 mProgressStartCount++; 251 mProgressStartCount++;
258 252
259 if (mIsUsingSmoothIndeterminate) { 253 if (mIsUsingSmoothIndeterminate) {
260 removeCallbacks(mStartSmoothIndeterminate); 254 removeCallbacks(mStartSmoothIndeterminate);
261 postDelayed(mStartSmoothIndeterminate, ANIMATION_START_THRESHOLD); 255 postDelayed(mStartSmoothIndeterminate, ANIMATION_START_THRESHOLD);
262 } 256 }
263 257
264 mIsRunningSmoothIndeterminate = false; 258 mIsRunningSmoothIndeterminate = false;
265 mTargetProgressUpdateCount = 0;
266 resetProgressUpdateCount();
267 super.setProgress(0.0f); 259 super.setProgress(0.0f);
268 if (mAnimationLogic != null) mAnimationLogic.reset(0.0f); 260 if (mAnimationLogic != null) mAnimationLogic.reset(0.0f);
269 removeCallbacks(mHideRunnable); 261 removeCallbacks(mHideRunnable);
270 animateAlphaTo(1.0f); 262 animateAlphaTo(1.0f);
271 } 263 }
272 264
273 /** 265 /**
274 * @return True if the progress bar is showing and started. 266 * @return True if the progress bar is showing and started.
275 */ 267 */
276 public boolean isStarted() { 268 public boolean isStarted() {
277 return mIsStarted; 269 return mIsStarted;
278 } 270 }
279 271
280 /** 272 /**
281 * Start hiding progress bar animation. 273 * Start hiding progress bar animation.
282 * @param delayed Whether a delayed fading out animation should be posted. 274 * @param delayed Whether a delayed fading out animation should be posted.
283 */ 275 */
284 public void finish(boolean delayed) { 276 public void finish(boolean delayed) {
285 mIsStarted = false; 277 mIsStarted = false;
286 278
287 if (delayed) { 279 if (delayed) {
288 updateVisibleProgress(); 280 updateVisibleProgress();
289 RecordHistogram.recordCount1000Histogram(PROGRESS_BAR_UPDATE_COUNT_H ISTOGRAM,
290 getProgressUpdateCount());
291 RecordHistogram.recordCount100Histogram(
292 PROGRESS_BAR_BREAK_POINT_UPDATE_COUNT_HISTOGRAM,
293 mTargetProgressUpdateCount);
294 } else { 281 } else {
295 removeCallbacks(mHideRunnable); 282 removeCallbacks(mHideRunnable);
296 animate().cancel(); 283 animate().cancel();
297 if (mAnimatingView != null) { 284 if (mAnimatingView != null) {
298 removeCallbacks(mStartSmoothIndeterminate); 285 removeCallbacks(mStartSmoothIndeterminate);
299 mAnimatingView.cancelAnimation(); 286 mAnimatingView.cancelAnimation();
300 mTargetProgress = 0; 287 mTargetProgress = 0;
301 } 288 }
302 mIsRunningSmoothIndeterminate = false; 289 mIsRunningSmoothIndeterminate = false;
303 setAlpha(0.0f); 290 setAlpha(0.0f);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 // If the progress bar was updated, reset the callback that triggers the 366 // If the progress bar was updated, reset the callback that triggers the
380 // smooth-indeterminate animation. 367 // smooth-indeterminate animation.
381 removeCallbacks(mStartSmoothIndeterminate); 368 removeCallbacks(mStartSmoothIndeterminate);
382 if (progress == 1.0) { 369 if (progress == 1.0) {
383 if (mAnimatingView != null) mAnimatingView.cancelAnimation(); 370 if (mAnimatingView != null) mAnimatingView.cancelAnimation();
384 } else if (mAnimatingView != null && !mAnimatingView.isRunning()) { 371 } else if (mAnimatingView != null && !mAnimatingView.isRunning()) {
385 postDelayed(mStartSmoothIndeterminate, ANIMATION_START_THRESHOLD ); 372 postDelayed(mStartSmoothIndeterminate, ANIMATION_START_THRESHOLD );
386 } 373 }
387 } 374 }
388 375
389 mTargetProgressUpdateCount += 1;
390 mTargetProgress = progress; 376 mTargetProgress = progress;
391 updateVisibleProgress(); 377 updateVisibleProgress();
392 } 378 }
393 379
394 @Override 380 @Override
395 public void setVisibility(int visibility) { 381 public void setVisibility(int visibility) {
396 super.setVisibility(visibility); 382 super.setVisibility(visibility);
397 if (mAnimatingView != null) mAnimatingView.setVisibility(visibility); 383 if (mAnimatingView != null) mAnimatingView.setVisibility(visibility);
398 } 384 }
399 385
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 return ProgressBar.class.getName(); 435 return ProgressBar.class.getName();
450 } 436 }
451 437
452 @Override 438 @Override
453 public void onInitializeAccessibilityEvent(AccessibilityEvent event) { 439 public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
454 super.onInitializeAccessibilityEvent(event); 440 super.onInitializeAccessibilityEvent(event);
455 event.setCurrentItemIndex((int) (mTargetProgress * 100)); 441 event.setCurrentItemIndex((int) (mTargetProgress * 100));
456 event.setItemCount(100); 442 event.setItemCount(100);
457 } 443 }
458 } 444 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698