Use boundsOnScreen to offset the translate

ScreenRect is position in current window. However, it results in the
incorrect bounds if the window isn't from (0, 0). We need to update
it with bounds on screen instead.

Bug: 149539748
Test: a11y CTS & unit tests
Change-Id: I3cb07656a2c87e5f4fd1cba78463b1135c959bd4
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index 47ffd3e..5566e0e 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -1643,8 +1643,9 @@
     }
 
     private void updateScreenMatrixForEmbeddedHierarchy() {
+        getBoundsOnScreen(mTmpRect, true);
         mTmpMatrix.reset();
-        mTmpMatrix.setTranslate(mScreenRect.left, mScreenRect.top);
+        mTmpMatrix.setTranslate(mTmpRect.left, mTmpRect.top);
         mTmpMatrix.postScale(mScreenRect.width() / (float) mSurfaceWidth,
                 mScreenRect.height() / (float) mSurfaceHeight);