+ // If there is delay time before Animation starts, wait the Animation until mDelaySeconds.
+ if( mDelaySeconds > 0.0f )
+ {
+ float reduceSeconds = fabsf( elapsedSeconds * mSpeedFactor );
+ if( reduceSeconds > mDelaySeconds )
+ {
+ if( mSpeedFactor < 0.0f )
+ {
+ mElapsedSeconds -= reduceSeconds - mDelaySeconds;
+ }
+ else
+ {
+ mElapsedSeconds += reduceSeconds - mDelaySeconds;
+ }
+ mDelaySeconds = 0.0f;
+ }
+ else
+ {
+ mDelaySeconds -= reduceSeconds;
+ }
+ }
+ else
+ {
+ mElapsedSeconds += ( elapsedSeconds * mSpeedFactor );
+ }
+
+ if ( mProgressReachedSignalRequired && ( mElapsedSeconds >= mProgressMarker ) )
+ {
+ // The application should be notified by NotificationManager, in another thread
+ progressReached = true;
+ mProgressReachedSignalRequired = false;
+ }