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

Side by Side Diff: chrome/browser/ui/autofill/loading_animation.cc

Issue 1931043002: Remove requestAutocomplete (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 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
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/autofill/loading_animation.h"
6
7 #include "base/logging.h"
8 #include "base/macros.h"
9 #include "ui/gfx/animation/tween.h"
10
11 namespace autofill {
12
13 // Duration of one cycle of the animation.
14 static const int kDurationMs = 1800;
15
16 // The frame rate of the animation.
17 static const int kHertz = 60;
18
19 LoadingAnimation::LoadingAnimation(gfx::AnimationDelegate* delegate,
20 int font_height)
21 : LinearAnimation(kDurationMs, kHertz, delegate),
22 first_cycle_(true),
23 font_height_(font_height) {}
24
25 LoadingAnimation::~LoadingAnimation() {}
26
27 void LoadingAnimation::Step(base::TimeTicks time_now) {
28 LinearAnimation::Step(time_now);
29
30 if (!is_animating()) {
31 first_cycle_ = false;
32 Start();
33 }
34 }
35
36 double LoadingAnimation::GetCurrentValueForDot(size_t dot_i) const {
37 double base_value = gfx::LinearAnimation::GetCurrentValue();
38
39 const double kSecondDotDelayMs = 100.0;
40 const double kThirdDotDelayMs = 300.0;
41 if (dot_i == 1)
42 base_value -= kSecondDotDelayMs / kDurationMs;
43 else if (dot_i == 2)
44 base_value -= kThirdDotDelayMs / kDurationMs;
45
46 if (base_value < 0.0)
47 base_value = first_cycle_ ? 0.0 : base_value + 1.0;
48
49 double value = gfx::Tween::CalculateValue(gfx::Tween::EASE_OUT, base_value);
50
51 static AnimationFrame kAnimationFrames[] = {
52 { 0.0, 0.0 },
53 { 0.55, 0.0 },
54 { 0.6, -1.0 },
55 { 0.8, 0.3 },
56 { 0.9, -0.2 },
57 { 0.95, 0.1 },
58 { 1.0, 0.0 },
59 };
60
61 for (size_t i = 0; i < arraysize(kAnimationFrames); ++i) {
62 if (value > kAnimationFrames[i].value)
63 continue;
64
65 double position;
66 if (i == 0) {
67 position = kAnimationFrames[i].position;
68 } else {
69 double inter_frame_value =
70 (value - kAnimationFrames[i - 1].value) /
71 (kAnimationFrames[i].value - kAnimationFrames[i - 1].value);
72 position = gfx::Tween::FloatValueBetween(inter_frame_value,
73 kAnimationFrames[i - 1].position,
74 kAnimationFrames[i].position);
75 }
76 return position * font_height_ / 2.0;
77 }
78
79 NOTREACHED();
80 return 0.0;
81 }
82
83 void LoadingAnimation::Reset() {
84 Stop();
85 first_cycle_ = true;
86 }
87
88 } // namespace autofill
OLDNEW
« no previous file with comments | « chrome/browser/ui/autofill/loading_animation.h ('k') | chrome/browser/ui/autofill/mock_address_validator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698