Fixing homescreen getting blank when returning from the overlay
Change-Id: Ie11b92cd59c90e71b9b58eeede742ef0c5b28380
This commit is contained in:
@@ -1055,16 +1055,16 @@ 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) {
|
||||
if (count > 0) {
|
||||
final int visibleLeft = -getLeft();
|
||||
final int visibleRight = visibleLeft + getViewportWidth();
|
||||
final Matrix pageShiftMatrix = getPageShiftMatrix();
|
||||
int curScreen = 0;
|
||||
|
||||
int count = getChildCount();
|
||||
for (int i = 0; i < count; i++) {
|
||||
View currPage = getPageAt(i);
|
||||
|
||||
@@ -1073,7 +1073,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
|
||||
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) {
|
||||
@@ -1096,6 +1096,10 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
|
||||
}
|
||||
}
|
||||
|
||||
protected Matrix getPageShiftMatrix() {
|
||||
return getMatrix();
|
||||
}
|
||||
|
||||
protected boolean shouldDrawChild(View child) {
|
||||
return child.getVisibility() == VISIBLE;
|
||||
}
|
||||
|
||||
@@ -173,6 +173,7 @@ public class Workspace extends PagedView
|
||||
@Thunk float[] mDragViewVisualCenter = new float[2];
|
||||
private float[] mTempCellLayoutCenterCoordinates = new float[2];
|
||||
private Matrix mTempInverseMatrix = new Matrix();
|
||||
private Matrix mTempMatrix = new Matrix();
|
||||
|
||||
private SpringLoadedDragController mSpringLoadedDragController;
|
||||
private float mSpringLoadedShrinkFactor;
|
||||
@@ -1344,6 +1345,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
|
||||
@@ -1361,6 +1363,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);
|
||||
|
||||
Reference in New Issue
Block a user