diff options
author | Scott Lobdell <slobdell@google.com> | 2021-04-25 19:53:32 +0000 |
---|---|---|
committer | Daniel Norman <danielnorman@google.com> | 2021-04-29 09:44:07 -0700 |
commit | 2051462f672b5986ef321bf1de3657e7653864e8 (patch) | |
tree | 1dee6334f2b0a68d3cc2e532e6f89bb16149aa7d /cmds/bootanimation/BootAnimation.cpp | |
parent | b22baa1593b2ee33200d009f7f56d1c44a75ac6d (diff) | |
parent | ab6136865a519a27d731b4caa3e782bdf02cfd91 (diff) |
Merge SP1A.210425.001
Change-Id: I8d45e47c131320cac5e794fd629fdef84dd3bcfc
Diffstat (limited to 'cmds/bootanimation/BootAnimation.cpp')
-rw-r--r-- | cmds/bootanimation/BootAnimation.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp index b73e6bf55ebc..25a8e482fd00 100644 --- a/cmds/bootanimation/BootAnimation.cpp +++ b/cmds/bootanimation/BootAnimation.cpp @@ -1223,9 +1223,12 @@ bool BootAnimation::movie() { return false; } -bool BootAnimation::shouldStopPlayingPart(const Animation::Part& part, const int fadedFramesCount) { +bool BootAnimation::shouldStopPlayingPart(const Animation::Part& part, + const int fadedFramesCount, + const int lastDisplayedProgress) { // stop playing only if it is time to exit and it's a partial part which has been faded out - return exitPending() && !part.playUntilComplete && fadedFramesCount >= part.framesToFadeCount; + return exitPending() && !part.playUntilComplete && fadedFramesCount >= part.framesToFadeCount && + (lastDisplayedProgress == 0 || lastDisplayedProgress == 100); } bool BootAnimation::playAnimation(const Animation& animation) { @@ -1252,7 +1255,7 @@ bool BootAnimation::playAnimation(const Animation& animation) { // process the part not only while the count allows but also if already fading for (int r=0 ; !part.count || r<part.count || fadedFramesCount > 0 ; r++) { - if (shouldStopPlayingPart(part, fadedFramesCount)) break; + if (shouldStopPlayingPart(part, fadedFramesCount, lastDisplayedProgress)) break; mCallbacks->playPart(i, part, r); @@ -1269,7 +1272,7 @@ bool BootAnimation::playAnimation(const Animation& animation) { (i == (pcount -1)) && currentProgress != 0; for (size_t j=0 ; j<fcount ; j++) { - if (shouldStopPlayingPart(part, fadedFramesCount)) break; + if (shouldStopPlayingPart(part, fadedFramesCount, lastDisplayedProgress)) break; processDisplayEvents(); @@ -1368,6 +1371,10 @@ bool BootAnimation::playAnimation(const Animation& animation) { if (exitPending() && !part.count && mCurrentInset >= mTargetInset && !part.hasFadingPhase()) { + if (lastDisplayedProgress != 0 && lastDisplayedProgress != 100) { + android::base::SetProperty(PROGRESS_PROP_NAME, "100"); + continue; + } break; // exit the infinite non-fading part when it has been played at least once } } |