void EnterTransitionCoordinator::StartRejectedAnimations(
    /* [in] */ IArrayList* rejectedSnapshots) //ArrayList<View>
{
    Boolean bval;
    if (rejectedSnapshots == NULL || (rejectedSnapshots->IsEmpty(&bval), bval)) {
        return;
    }
    AutoPtr<IViewGroup> vg;
    GetDecor((IViewGroup**)&vg);
    IView* decorView = IView::Probe(vg);
    if (decorView != NULL) {
        AutoPtr<IViewOverlay> vo;
        decorView->GetOverlay((IViewOverlay**)&vo);
        IViewGroupOverlay* overlay = IViewGroupOverlay::Probe(vo);
        AutoPtr<IObjectAnimator> animator;
        Int32 numRejected;
        rejectedSnapshots->GetSize(&numRejected);
        AutoPtr<ArrayOf<Float> > args = ArrayOf<Float>::Alloc(2);
        args->Set(0, 0);
        args->Set(1, 0);
        for (Int32 i = 0; i < numRejected; i++) {
            AutoPtr<IInterface> obj;
            rejectedSnapshots->Get(i, (IInterface**)&obj);
            IView* snapshot = IView::Probe(obj);
            overlay->Add(snapshot);
            animator = ObjectAnimator::OfFloat(
                snapshot, Elastos::Droid::View::View::ALPHA, args);
            IAnimator::Probe(animator)->Start();
        }

        AutoPtr<IAnimatorListener> listener = new RejectedAnimatorListenerAdapter(
            this, decorView, rejectedSnapshots);
        IAnimator::Probe(animator)->AddListener(listener);
    }
}