[Tizen] Ignore AnimationFinishedCallback when we call Animation::Clear() hard + Resol... 39/311939/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Thu, 30 May 2024 11:18:50 +0000 (20:18 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Fri, 31 May 2024 01:08:29 +0000 (10:08 +0900)
commit886361e70eef9ee6e5d34e79ac131796c53cbd81
treee2c83551fcf7fcfdb06df0c91748938d62b7d0df
parent2d78a0d56280a84296f11db832d546ff5270040d
[Tizen] Ignore AnimationFinishedCallback when we call Animation::Clear() hard + Resolve bug when we call Play multiple times

There was several bugs at AnimationPlayList.

1. Core::ProcessCoreEvents sequence is like this :
     SceneEvent -> NotificationManager -> Relayout -> Flush.
   If we call Animation::Clear() at SceneEvent timing, Notfication will send animation finished signal
   what we must not send.

   To avoid this system, let we store the cleared animations at AnimationPlayList.

   Since AnimationFinished callback required at least 1 frame times after flush,
   we can ignore whole notify events before Flush done.

2. Scene mPlayList keep the reference of Animation whenever we call Play, there
   were several problems. For example, If we call Play() 2 times and Clear(),
   that Dali::Animation never be removed.

Change-Id: Ie9d5298311b9e5318fecad21b1124c896fcf3a8e
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
automated-tests/src/dali/utc-Dali-Animation.cpp
dali/internal/common/core-impl.cpp
dali/internal/event/animation/animation-impl.cpp
dali/internal/event/animation/animation-playlist.cpp
dali/internal/event/animation/animation-playlist.h