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

Unified Diff: ui/views/animation/test/ink_drop_animation_test_api.cc

Issue 1495753002: Make the material design ripple effect more visible on a quick action (single click or single tap) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added tests and addressed comments from previous patch sets. Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: ui/views/animation/test/ink_drop_animation_test_api.cc
diff --git a/ui/views/animation/test/ink_drop_animation_test_api.cc b/ui/views/animation/test/ink_drop_animation_test_api.cc
index 0f86812a42de2a35ead85751c45a0ce92469d3e1..ffc04d05124c3c075bb927a77ea8570d7b59d299 100644
--- a/ui/views/animation/test/ink_drop_animation_test_api.cc
+++ b/ui/views/animation/test/ink_drop_animation_test_api.cc
@@ -2,6 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/time/time.h"
+#include "ui/compositor/layer.h"
+#include "ui/compositor/layer_animator.h"
+#include "ui/compositor/test/layer_animator_test_controller.h"
#include "ui/views/animation/ink_drop_animation.h"
#include "ui/views/animation/test/ink_drop_animation_test_api.h"
@@ -14,6 +18,32 @@ InkDropAnimationTestApi::InkDropAnimationTestApi(
InkDropAnimationTestApi::~InkDropAnimationTestApi() {}
+void InkDropAnimationTestApi::SetDisableAnimationTimers(bool disable_timers) {
+ for (ui::LayerAnimator* animator : GetLayerAnimators())
+ animator->set_disable_timer_for_test(disable_timers);
+}
+
+bool InkDropAnimationTestApi::HasActiveAnimations() const {
+ for (ui::LayerAnimator* animator : GetLayerAnimators()) {
+ if (animator->is_animating())
+ return true;
+ }
+ return false;
+}
+
+void InkDropAnimationTestApi::CompleteAnimations() {
+ while (HasActiveAnimations()) {
+ // StepAnimations() will only progress the current running animations. Thus
+ // each queued animation will require at least one 'Step' call and we cannot
+ // just use a large duration here.
+ StepAnimations(base::TimeDelta::FromMilliseconds(20));
+ }
+}
+
+float InkDropAnimationTestApi::GetCurrentOpacity() const {
+ return ink_drop_animation_->GetCurrentOpacity();
+}
+
void InkDropAnimationTestApi::CalculateCircleTransforms(
const gfx::Size& size,
InkDropTransforms* transforms_out) const {
@@ -27,5 +57,26 @@ void InkDropAnimationTestApi::CalculateRectTransforms(
transforms_out);
}
+void InkDropAnimationTestApi::StepAnimations(const base::TimeDelta& duration) {
+ for (ui::LayerAnimator* animator : GetLayerAnimators()) {
+ ui::LayerAnimatorTestController controller(animator);
+ controller.StartThreadedAnimationsIfNeeded();
+ controller.Step(duration);
+ }
+}
+
+std::vector<ui::LayerAnimator*> InkDropAnimationTestApi::GetLayerAnimators() {
+ return static_cast<const InkDropAnimationTestApi*>(this)->GetLayerAnimators();
+}
+
+std::vector<ui::LayerAnimator*> InkDropAnimationTestApi::GetLayerAnimators()
+ const {
+ std::vector<ui::LayerAnimator*> animators;
+ animators.push_back(ink_drop_animation_->root_layer_->GetAnimator());
+ for (int i = 0; i < InkDropAnimation::PAINTED_SHAPE_COUNT; ++i)
+ animators.push_back(ink_drop_animation_->painted_layers_[i]->GetAnimator());
+ return animators;
+}
+
} // namespace test
} // namespace views

Powered by Google App Engine
This is Rietveld 408576698