Commit 2d0b7e1a authored by Vladislav Kaznacheev's avatar Vladislav Kaznacheev Committed by Commit Bot

cros: Change Assistant pen timing

Start the animation a bit earlier, invoke the Assistant a bit later.
(see the bug for details).

Bug: 751752
Change-Id: Ic141fc6a1955f49fd26a7eab9e7128d0c1197fd0
Reviewed-on: https://chromium-review.googlesource.com/598774Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
Commit-Queue: Vladislav Kaznacheev <kaznacheev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491553}
parent fe5c2f3d
...@@ -38,12 +38,12 @@ const SkColor kCornerCircleColorRT = SkColorSetRGB(0xEA, 0x43, 0x35); ...@@ -38,12 +38,12 @@ const SkColor kCornerCircleColorRT = SkColorSetRGB(0xEA, 0x43, 0x35);
const SkColor kCornerCircleColorLB = SkColorSetRGB(0x34, 0xA8, 0x53); const SkColor kCornerCircleColorLB = SkColorSetRGB(0x34, 0xA8, 0x53);
const SkColor kCornerCircleColorRB = SkColorSetRGB(0xFB, 0xBC, 0x05); const SkColor kCornerCircleColorRB = SkColorSetRGB(0xFB, 0xBC, 0x05);
constexpr int kResultFadeinDelayMs = 600; constexpr int kResultFadeinDelayMs = 200;
constexpr int kResultFadeinDurationMs = 400; constexpr int kResultFadeinDurationMs = 400;
constexpr int kResultFadeoutDelayMs = 500; constexpr int kResultFadeoutDelayMs = 500;
constexpr int kResultFadeoutDurationMs = 200; constexpr int kResultFadeoutDurationMs = 200;
constexpr int kResultInPlaceFadeinDelayMs = 500; constexpr int kResultInPlaceFadeinDelayMs = 100;
constexpr int kResultInPlaceFadeinDurationMs = 500; constexpr int kResultInPlaceFadeinDurationMs = 500;
constexpr float kInitialScale = 1.2; constexpr float kInitialScale = 1.2;
...@@ -225,11 +225,11 @@ void HighlighterResultView::ScheduleFadeIn(const base::TimeDelta& delay, ...@@ -225,11 +225,11 @@ void HighlighterResultView::ScheduleFadeIn(const base::TimeDelta& delay,
layer->SetOpacity(0); layer->SetOpacity(0);
animation_timer_.reset( animation_timer_ = base::MakeUnique<base::Timer>(
new base::Timer(FROM_HERE, delay, FROM_HERE, delay,
base::Bind(&HighlighterResultView::FadeIn, base::Bind(&HighlighterResultView::FadeIn, base::Unretained(this),
base::Unretained(this), duration), duration),
false)); false);
animation_timer_->Reset(); animation_timer_->Reset();
} }
...@@ -248,12 +248,11 @@ void HighlighterResultView::FadeIn(const base::TimeDelta& duration) { ...@@ -248,12 +248,11 @@ void HighlighterResultView::FadeIn(const base::TimeDelta& duration) {
layer->SetTransform(transform); layer->SetTransform(transform);
} }
animation_timer_.reset(new base::Timer( animation_timer_ = base::MakeUnique<base::Timer>(
FROM_HERE, FROM_HERE,
base::TimeDelta::FromMilliseconds(kResultFadeinDurationMs + duration + base::TimeDelta::FromMilliseconds(kResultFadeoutDelayMs),
kResultFadeoutDelayMs),
base::Bind(&HighlighterResultView::FadeOut, base::Unretained(this)), base::Bind(&HighlighterResultView::FadeOut, base::Unretained(this)),
false)); false);
animation_timer_->Reset(); animation_timer_->Reset();
} }
......
...@@ -24,7 +24,7 @@ constexpr int kOutsetForAntialiasing = 1; ...@@ -24,7 +24,7 @@ constexpr int kOutsetForAntialiasing = 1;
constexpr float kStrokeScale = 1.2; constexpr float kStrokeScale = 1.2;
constexpr int kStrokeFadeoutDelayMs = 500; constexpr int kStrokeFadeoutDelayMs = 100;
constexpr int kStrokeFadeoutDurationMs = 500; constexpr int kStrokeFadeoutDurationMs = 500;
constexpr int kStrokeScaleDurationMs = 300; constexpr int kStrokeScaleDurationMs = 300;
......
...@@ -28,6 +28,8 @@ ...@@ -28,6 +28,8 @@
namespace chromeos { namespace chromeos {
constexpr int kMetalayerSelectionDelayMs = 600;
class VoiceInteractionSelectionObserver class VoiceInteractionSelectionObserver
: public ash::HighlighterSelectionObserver { : public ash::HighlighterSelectionObserver {
public: public:
...@@ -37,6 +39,18 @@ class VoiceInteractionSelectionObserver ...@@ -37,6 +39,18 @@ class VoiceInteractionSelectionObserver
private: private:
void HandleSelection(const gfx::Rect& rect) override { void HandleSelection(const gfx::Rect& rect) override {
// Delay the actual voice interaction service invocation for better
// visual synchronization with the metalayer animation.
delay_timer_ = base::MakeUnique<base::Timer>(
FROM_HERE,
base::TimeDelta::FromMilliseconds(kMetalayerSelectionDelayMs),
base::Bind(&VoiceInteractionSelectionObserver::ReportSelection,
base::Unretained(this), rect),
false /* not repeating */);
delay_timer_->Reset();
}
void ReportSelection(const gfx::Rect& rect) {
auto* framework = auto* framework =
arc::ArcVoiceInteractionFrameworkService::GetForBrowserContext( arc::ArcVoiceInteractionFrameworkService::GetForBrowserContext(
profile_); profile_);
...@@ -47,6 +61,8 @@ class VoiceInteractionSelectionObserver ...@@ -47,6 +61,8 @@ class VoiceInteractionSelectionObserver
Profile* const profile_; // Owned by ProfileManager. Profile* const profile_; // Owned by ProfileManager.
std::unique_ptr<base::Timer> delay_timer_;
DISALLOW_COPY_AND_ASSIGN(VoiceInteractionSelectionObserver); DISALLOW_COPY_AND_ASSIGN(VoiceInteractionSelectionObserver);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment