void EnterTransitionCoordinator::OnTakeSharedElements()
{
    if (!mIsReadyForTransition || mSharedElementsBundle == NULL) {
        return;
    }
    AutoPtr<IBundle> sharedElementState = mSharedElementsBundle;
    mSharedElementsBundle = NULL;
    AutoPtr<IViewGroup> vg;
    GetDecor((IViewGroup**)&vg);
    IView* decorView = IView::Probe(vg);
    if (decorView != NULL) {
        AutoPtr<IViewTreeObserver> vto;
        decorView->GetViewTreeObserver((IViewTreeObserver**)&vto);
        AutoPtr<IOnPreDrawListener> listener = new TakeSharedElementsOnPreDrawListener(
            this, decorView, sharedElementState);
        vto->AddOnPreDrawListener(listener);
        decorView->Invalidate();
    }
}