Fixing homescreen getting blank when returning from the overlay

Change-Id: Ie11b92cd59c90e71b9b58eeede742ef0c5b28380
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index b3a714b..ef89192 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -1042,24 +1042,25 @@
     }
 
     protected void getVisiblePages(int[] range) {
-        final int pageCount = getChildCount();
+        final int count = getChildCount();
         range[0] = -1;
         range[1] = -1;
 
-        if (pageCount > 0) {
-            int lastVisiblePageIndex = 0;
+        if (count > 0) {
             final int visibleLeft = -getLeft();
             final int visibleRight = visibleLeft + getViewportWidth();
+            final Matrix pageShiftMatrix = getPageShiftMatrix();
+            int curScreen = 0;
 
-            for (int currPageIndex = 0; currPageIndex < pageCount; currPageIndex++) {
-                View currPage = getPageAt(currPageIndex);
+            for (int i = 0; i < count; i++) {
+                View currPage = getPageAt(i);
 
                 // Verify if the page bounds are within the visible range.
                 sTmpRectF.left = 0;
                 sTmpRectF.right = currPage.getMeasuredWidth();
                 currPage.getMatrix().mapRect(sTmpRectF);
                 sTmpRectF.offset(currPage.getLeft() - getScrollX(), 0);
-                getMatrix().mapRect(sTmpRectF);
+                pageShiftMatrix.mapRect(sTmpRectF);
 
                 if (sTmpRectF.left > visibleRight || sTmpRectF.right < visibleLeft) {
                     if (range[0] == -1) {
@@ -1068,19 +1069,23 @@
                         break;
                     }
                 }
+                curScreen = i;
                 if (range[0] < 0) {
-                    range[0] = currPageIndex;
+                    range[0] = curScreen;
                 }
-                lastVisiblePageIndex = currPageIndex;
             }
 
-            range[1] = lastVisiblePageIndex;
+            range[1] = curScreen;
         } else {
             range[0] = -1;
             range[1] = -1;
         }
     }
 
+    protected Matrix getPageShiftMatrix() {
+        return getMatrix();
+    }
+
     protected boolean shouldDrawChild(View child) {
         return child.getVisibility() == VISIBLE;
     }