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

Unified Diff: ash/shelf/voice_interaction_overlay.h

Issue 2972923002: Update voice interaction burst animation (Closed)
Patch Set: fix comments Created 3 years, 5 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: ash/shelf/voice_interaction_overlay.h
diff --git a/ash/shelf/voice_interaction_overlay.h b/ash/shelf/voice_interaction_overlay.h
index 304eba11ebfd4478c3a44cb0d032861c727bcb6f..5f96fc76f587d183041a0b5e1e58751d0c1c2bf7 100644
--- a/ash/shelf/voice_interaction_overlay.h
+++ b/ash/shelf/voice_interaction_overlay.h
@@ -13,23 +13,33 @@
#include "ui/views/animation/ink_drop_painted_layer_delegates.h"
#include "ui/views/view.h"
+namespace ui {
+class CallbackLayerAnimationObserver;
+} // namespace ui
+
namespace ash {
class AppListButton;
+class VoiceInteractionIconBackground;
class ASH_EXPORT VoiceInteractionOverlay : public views::View {
public:
explicit VoiceInteractionOverlay(AppListButton* host_view);
~VoiceInteractionOverlay() override;
- void StartAnimation();
+ void StartAnimation(bool show_icon);
void EndAnimation();
void BurstAnimation();
+ void HideAnimation();
+ bool IsBursting() const { return is_bursting_; }
private:
+ bool AnimationEndedCallback(
+ const ui::CallbackLayerAnimationObserver& observer);
+
std::unique_ptr<ui::Layer> ripple_layer_;
std::unique_ptr<ui::Layer> icon_layer_;
- std::unique_ptr<ui::Layer> background_layer_;
+ std::unique_ptr<VoiceInteractionIconBackground> background_layer_;
AppListButton* host_view_;
@@ -37,6 +47,13 @@ class ASH_EXPORT VoiceInteractionOverlay : public views::View {
// turning back.
bool is_bursting_;
+ // Whether showing the icon animation or not.
+ bool show_icon_;
+
+ // Whether we should hide the burst animation when the animation ends. This is
+ // used to synchronize the animation and the underlying window's appearance.
+ bool should_hide_animation_;
+
views::CircleLayerDelegate circle_layer_delegate_;
DISALLOW_COPY_AND_ASSIGN(VoiceInteractionOverlay);

Powered by Google App Engine
This is Rietveld 408576698