Merge "Fixing homescreen getting blank when returning from the overlay" into ub-launcher3-calgary

am: e670159cfe

* commit 'e670159cfe255693f829f3e2857bbd8c52731e9d':
  Fixing homescreen getting blank when returning from the overlay
This commit is contained in:
Sunny Goyal
2016-03-01 01:07:56 +00:00
committed by android-build-merger
2 changed files with 28 additions and 9 deletions
+14 -9
View File
@@ -1042,24 +1042,25 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
}
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 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
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;
}
+14
View File
@@ -170,6 +170,7 @@ public class Workspace extends PagedView
@Thunk float[] mDragViewVisualCenter = new float[2];
private float[] mTempCellLayoutCenterCoordinates = new float[2];
private int[] mTempVisiblePagesRange = new int[2];
private Matrix mTempMatrix = new Matrix();
private SpringLoadedDragController mSpringLoadedDragController;
private float mSpringLoadedShrinkFactor;
@@ -1317,6 +1318,7 @@ public class Workspace extends PagedView
if (mIsRtl) {
transX = -transX;
}
mOverlayTranslation = transX;
// TODO(adamcohen): figure out a final effect here. We may need to recommend
// different effects based on device performance. On at least one relatively high-end
@@ -1334,6 +1336,18 @@ public class Workspace extends PagedView
}
}
@Override
protected Matrix getPageShiftMatrix() {
if (Float.compare(mOverlayTranslation, 0) != 0) {
// The pages are translated by mOverlayTranslation. incorporate that in the
// visible page calculation by shifting everything back by that same amount.
mTempMatrix.set(getMatrix());
mTempMatrix.postTranslate(-mOverlayTranslation, 0);
return mTempMatrix;
}
return super.getPageShiftMatrix();
}
private void setTranslationAndAlpha(View v, float transX, float alpha) {
if (v != null) {
v.setTranslationX(transX);