//workspace
void snapToScreen(int whichScreen) {
// if (!mScroller.isFinished()) return;
clearVacantCache();
enableChildrenCache();
whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
int index = indexOfScreen(mCurrentGroup, mCurrentScreen);
boolean changingScreens = whichScreen != index;
//AAA
CellLayout cell = null;
if (DragLayer.isDragging()) {
if (mDragInfo != null && mDragInfo.cell != null) {
mDragInfo.cell.setVisibility(View.GONE);
}
if (changingScreens) {
if (mLauncher != null && mLauncher.getDragLayer() != null) {
mLauncher.getDragLayer().snap2ScreenWings();
}
cell = (CellLayout) getChildAt(whichScreen);
if (cell != null) {
cell.initAnimation();
}
cell = (CellLayout) getChildAt(index);
if (cell != null) {
cell.finishZoomOutAnimation();
}
}
} else {
cell = (CellLayout) getChildAt(index);
if (cell != null) {
cell.stopAnimation();
}
}
//
mNextScreen = whichScreen;
//mGroupNavi.updateFocusGroup(computeGroup(mNextScreen));
//mGroupNavi.lockGroup(true);
View focusedChild = getFocusedChild();
if (focusedChild != null && changingScreens && focusedChild == getChildAt(mCurrentScreen)) {
//focusedChild.clearFocus();
}
final int newX = whichScreen * getWidth();
final int delta = newX - mScrollX;
final int duration = Math.abs(delta) * 6 / 5;
mScroller.startScroll(mScrollX, 0, delta, 0, duration);
//mScroller.startScroll(mScrollX, 0, delta, 0, Math.abs(delta) * 2);
//final NavigationView nview = (NavigationView)mLauncher.getDrawerNavigator();
//nview.drawNavigator(correctWhichScreen(delta), duration + 790);
invalidate();
int flag = Math.max(0, Math.min(mNextScreen, getChildCount() - 1));
mCurrentGroup = computeGroup(flag);
mCurrentScreen = computeScreen(flag);
}
void snapToScreen(int whichScreen) {
// if (!mScroller.isFinished()) return;
clearVacantCache();
enableChildrenCache();
whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
int index = indexOfScreen(mCurrentGroup, mCurrentScreen);
boolean changingScreens = whichScreen != index;
//AAA
CellLayout cell = null;
if (DragLayer.isDragging()) {
if (mDragInfo != null && mDragInfo.cell != null) {
mDragInfo.cell.setVisibility(View.GONE);
}
if (changingScreens) {
if (mLauncher != null && mLauncher.getDragLayer() != null) {
mLauncher.getDragLayer().snap2ScreenWings();
}
cell = (CellLayout) getChildAt(whichScreen);
if (cell != null) {
cell.initAnimation();
}
cell = (CellLayout) getChildAt(index);
if (cell != null) {
cell.finishZoomOutAnimation();
}
}
} else {
cell = (CellLayout) getChildAt(index);
if (cell != null) {
cell.stopAnimation();
}
}
//
mNextScreen = whichScreen;
//mGroupNavi.updateFocusGroup(computeGroup(mNextScreen));
//mGroupNavi.lockGroup(true);
View focusedChild = getFocusedChild();
if (focusedChild != null && changingScreens && focusedChild == getChildAt(mCurrentScreen)) {
//focusedChild.clearFocus();
}
final int newX = whichScreen * getWidth();
final int delta = newX - mScrollX;
final int duration = Math.abs(delta) * 6 / 5;
mScroller.startScroll(mScrollX, 0, delta, 0, duration);
//mScroller.startScroll(mScrollX, 0, delta, 0, Math.abs(delta) * 2);
//final NavigationView nview = (NavigationView)mLauncher.getDrawerNavigator();
//nview.drawNavigator(correctWhichScreen(delta), duration + 790);
invalidate();
int flag = Math.max(0, Math.min(mNextScreen, getChildCount() - 1));
mCurrentGroup = computeGroup(flag);
mCurrentScreen = computeScreen(flag);
}