, __isSelectionDelayed(false)
, __isCheckAnimationRunning(false)
, __isSelectAnimationRunning(false)
+ , __pPreviousAnimationVE(null)
, __pRemoveItemVE(null)
, __pEmptyListVE(null)
, __pVE(null)
, __isFlickDown(false)
, __flickRunning(false)
, __animationItemIndex(INVALID_INDEX)
+ , __previousAnimationItemIndex(INVALID_INDEX)
, __addTransactionId(0)
, __removeTransactionId(0)
, __moveTransactionId(0)
delete __pAnimationTimer;
__pAnimationTimer = null;
- __animationItemIndex = INVALID_INDEX;
-
return E_SUCCESS;
}
{
if (__addTransactionId == transactionId)
{
+ __animationItemIndex = INVALID_INDEX;
__addTransactionId = 0;
+ __pPreviousAnimationVE->SetOpacity(1.0f);
+ RedrawItem(__previousAnimationItemIndex);
}
else if (__removeTransactionId == transactionId)
{
if (__addTransactionId == transactionId)
{
__addTransactionId = 0;
+ RedrawItem(__animationItemIndex);
+ __animationItemIndex = INVALID_INDEX;
}
else if (__removeTransactionId == transactionId)
{
_VisualElement* pVE = item.GetItemVisualElement();
if (pVE != null)
{
- pVE->SetImplicitAnimationEnabled(false);
-
+ pVE->SetImplicitAnimationEnabled(true);
FloatRectangle endRect(GetItemBounds(index));
FloatRectangle startRect(endRect.x + (endRect.width * 0.15f), endRect.y + (endRect.height * 0.15f), endRect.width * 0.7f, endRect.height * 0.7f);
- pVE->SetBounds(endRect);
-
if (IsAnimationRunning(__addTransactionId))
{
AnimationTransaction::Stop(__addTransactionId);
}
AnimationTransaction::Begin(__addTransactionId);
+ AnimationTransaction::SetVisualElementAnimationTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
+ AnimationTransaction::SetVisualElementAnimationDuration(ITEM_ANIMATION_DURATION);
+ AnimationTransaction::SetVisualElementAnimationDelay(delay);
// opacity animation
VisualElementPropertyAnimation* pOpacityAnimation = new (std::nothrow) VisualElementPropertyAnimation();
SysTryReturnVoidResult(NID_UI_CTRL, (pOpacityAnimation != null), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
- pOpacityAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
pOpacityAnimation->SetPropertyName(L"opacity");
pOpacityAnimation->SetStartValue(Variant(0.0f));
pOpacityAnimation->SetEndValue(Variant(1.0f));
- pOpacityAnimation->SetDuration(ITEM_ANIMATION_DURATION);
- pOpacityAnimation->SetDelay(delay);
- String opacityAnimationName(L"AddItemOpacityAnimation");
- pVE->AddAnimation(opacityAnimationName, *pOpacityAnimation);
+ pVE->AddAnimation(L"AddItemOpacityAnimation", *pOpacityAnimation);
delete pOpacityAnimation;
// scale animation
VisualElementPropertyAnimation* pScaleAnimation = new (std::nothrow) VisualElementPropertyAnimation();
SysTryReturnVoidResult(NID_UI_CTRL, (pScaleAnimation != null), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
- pScaleAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
pScaleAnimation->SetPropertyName(L"bounds");
pScaleAnimation->SetStartValue(Variant(startRect));
pScaleAnimation->SetEndValue(Variant(endRect));
- pScaleAnimation->SetDuration(ITEM_ANIMATION_DURATION);
- pScaleAnimation->SetDelay(delay);
- String scaleAnimationName(L"AddItemScaleAnimation");
- pVE->AddAnimation(scaleAnimationName, *pScaleAnimation);
+ pVE->AddAnimation(L"AddItemScaleAnimation", *pScaleAnimation);
delete pScaleAnimation;
- pVE->SetImplicitAnimationEnabled(true);
- item.DrawItem(endRect, LIST_ITEM_STATE_NORMAL);
pVE->SetImplicitAnimationEnabled(false);
AnimationTransaction::Commit();
+ __previousAnimationItemIndex = index;
+ __pPreviousAnimationVE = pVE;
}
}