Summary:
As mentioned in the previous diff pixel copy only support copying a Window, Surface or SurfaceView, All of these underneath use surface.
For views attached to the window manager there is no activity / window so we need another solution
There is no official way to get a views underlying surface so we had to do some dirty hacks to get it from the window manager. See the inline comments for details.
Additionally it turns out that the pixel copy api was actually made async in Android 34, so to prepare for this the snapshot method was made a suspend function and we wrap the callback based apit with suspendCoroutine.
Reviewed By: lblasa
Differential Revision: D50845281
fbshipit-source-id: 5ba8ed6f330c1e04549812a6493ae5f4cb629d1f