ECode ActivityTransitionCoordinator::StripOffscreenViews() { if (mTransitioningViews == NULL) { return NOERROR; } AutoPtr<IRect> r; CRect::New((IRect**)&r); Int32 size; Boolean bval; mTransitioningViews->GetSize(&size); for (Int32 i = size - 1; i >= 0; i--) { AutoPtr<IInterface> obj; mTransitioningViews->Get(i, (IInterface**)&obj); IView* view = IView::Probe(obj); view->GetGlobalVisibleRect(r, &bval); if (!bval) { mTransitioningViews->Remove(i); ShowView(view, TRUE); } } return NOERROR; }