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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user