Using material style overscroll effect for workspace and folders

Bug: 21335369
Change-Id: I53cc6edfa87334b9326f1dedd90c3e2222beade5
This commit is contained in:
Sunny Goyal
2015-06-19 19:53:34 +00:00
parent e91a14c698
commit 4d113a5ff4
15 changed files with 488 additions and 202 deletions
+10 -34
View File
@@ -197,7 +197,6 @@ public class Workspace extends PagedView
private static final Rect sTempRect = new Rect();
private final int[] mTempXY = new int[2];
private int[] mTempVisiblePagesRange = new int[2];
private boolean mOverscrollEffectSet;
public static final int DRAG_BITMAP_PADDING = 2;
private boolean mWorkspaceFadeInAdjacentScreens;
@@ -257,8 +256,6 @@ public class Workspace extends PagedView
private float mCurrentScale;
private float mTransitionProgress;
float mOverScrollEffect = 0f;
@Thunk Runnable mDeferredAction;
private boolean mDeferDropAfterUninstall;
private boolean mUninstallSuccessful;
@@ -443,6 +440,8 @@ public class Workspace extends PagedView
// Set the wallpaper dimensions when Launcher starts up
setWallpaperDimension();
setEdgeGlowColor(getResources().getColor(R.color.workspace_edge_effect_color));
}
private void setupLayoutTransition() {
@@ -1260,9 +1259,6 @@ public class Workspace extends PagedView
mLauncherOverlay.onScrollChange(progress, mIsRtl);
} else if (shouldOverScroll) {
dampedOverScroll(amount);
mOverScrollEffect = acceleratedOverFactor(amount);
} else {
mOverScrollEffect = 0;
}
if (shouldZeroOverlay) {
@@ -1270,6 +1266,13 @@ public class Workspace extends PagedView
}
}
@Override
protected void getEdgeVerticalPostion(int[] pos) {
View child = getChildAt(getPageCount() - 1);
pos[0] = child.getTop();
pos[1] = child.getBottom();
}
@Override
protected void notifyPageSwitchListener() {
super.notifyPageSwitchListener();
@@ -1540,11 +1543,9 @@ public class Workspace extends PagedView
}
private void updatePageAlphaValues(int screenCenter) {
boolean isInOverscroll = mOverScrollX < 0 || mOverScrollX > mMaxScrollX;
if (mWorkspaceFadeInAdjacentScreens &&
!workspaceInModalState() &&
!mIsSwitchingState &&
!isInOverscroll) {
!mIsSwitchingState) {
for (int i = numCustomPages(); i < getChildCount(); i++) {
CellLayout child = (CellLayout) getChildAt(i);
if (child != null) {
@@ -1654,34 +1655,9 @@ public class Workspace extends PagedView
@Override
protected void screenScrolled(int screenCenter) {
super.screenScrolled(screenCenter);
updatePageAlphaValues(screenCenter);
updateStateForCustomContent(screenCenter);
enableHwLayersOnVisiblePages();
boolean shouldOverScroll = mOverScrollX < 0 || mOverScrollX > mMaxScrollX;
if (shouldOverScroll) {
int index = 0;
final int lowerIndex = 0;
final int upperIndex = getChildCount() - 1;
final boolean isLeftPage = mOverScrollX < 0;
index = (!mIsRtl && isLeftPage) || (mIsRtl && !isLeftPage) ? lowerIndex : upperIndex;
CellLayout cl = (CellLayout) getChildAt(index);
float effect = Math.abs(mOverScrollEffect);
cl.setOverScrollAmount(Math.abs(effect), isLeftPage);
mOverscrollEffectSet = true;
} else {
if (mOverscrollEffectSet && getChildCount() > 0) {
mOverscrollEffectSet = false;
((CellLayout) getChildAt(0)).setOverScrollAmount(0, false);
((CellLayout) getChildAt(getChildCount() - 1)).setOverScrollAmount(0, false);
}
}
}
protected void onAttachedToWindow() {