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); |