When handleShowDetailImpl is called twice in quick succession (show
then not show), there is a race condition. If the second call comes
in before the animation finishes, the second call will call
setGridContentVisibility(true) before the onAnimationEnd callback
calls setGridContentVisibility(false). At that point the grid
is assumed to be visible when it isn't.
To fix this the HideGridContentWhenDone listener removes itself
as a listener when the animation is cancelled, this will avoid
onAnimationEnd being called in this circumstance, leaving the grid
visible (as it is assumed to be).
Bug: 17424221
Change-Id: I67b84b669ebe0e061e4a2c7f98e8151c221ee4fb