OSDN Git Service

Cancel hotseat color animator before setting a new color.
authorTony Wickham <twickham@google.com>
Mon, 22 Aug 2016 22:23:01 +0000 (15:23 -0700)
committerTony Wickham <twickham@google.com>
Mon, 22 Aug 2016 22:23:01 +0000 (15:23 -0700)
commitef0c537925369192cd84b0c4e3df29691c455d83
tree928f050b52f23a4d5b9a40b325d2832c37960f4a
parentc9efe2ba9ce41d2b6b94346bd39d9684694c6d70
Cancel hotseat color animator before setting a new color.

There was a race condition that caused the new color to not be
applied. For example, here's how the hotseat would become transparent:
1 Launcher is loaded for the first time; as such, there is not yet a
  color defined for the hotseat, so we start animating to the provided
  default (Color.TRANSPARENT). Meanwhile we start the color extraction.
2 When the color extraction finishes, we set the hotseat to the new
  color. However, if launcher is paused at the time (perhaps some
  retail mode content is showing), then we don't animate the change.
3 If 2 happens before the animation in 1 is complete, the color from
  2 will be overriden by subsequent animation frames and thus the
  hotseat remains transparent until the wallpaper changes.

Bug: 30956221
Change-Id: Iddf72379b0162f1b32883ad26ce267473e172849
src/com/android/launcher3/Hotseat.java