private void drawWingsImg(Canvas canvas) {
if (workspace.isScrollerFinished()) {
if (mDragging) {
if (transferAt == null) {
startWingsAnimation(WINGS_START_VECTOR, WINGS_END_VECTOR, WINGS_INCREMENT, WINGS_SLEEP_TIME);
}
if (!transferAt.isAlive() && needWingsAnimation) {
if (changeWingsAnimationState) {
if (transferAtListener.getAnimationState() == DragLayerAnimationThread.MOVE_IN
&& transferAt.getCurrentScale() > WINGS_START_VECTOR) {
startWingsAnimation(transferAt.getCurrentScale(), WINGS_START_VECTOR, WINGS_INCREMENT,
WINGS_MOVE_IN_SLEEP_TIME);
} else if (transferAtListener.getAnimationState() == DragLayerAnimationThread.MOVE_OUT
&& transferAt.getCurrentScale() < WINGS_END_VECTOR) {
startWingsAnimation(transferAt.getCurrentScale(), WINGS_END_VECTOR, WINGS_INCREMENT,
WINGS_MOVE_OUT_SLEEP_TIME);
}
} else {
startWingsAnimation(WINGS_START_VECTOR, WINGS_END_VECTOR, WINGS_INCREMENT, WINGS_SLEEP_TIME);
}
}
} else {
if (transferAt != null) {
if (transferAt.isAlive()) {
transferAt.setAnimationState(AnimationThread.STATE_ZOOM_OUT);
} else if (needWingsAnimation && transferAt.getCurrentScale() != WINGS_START_VECTOR) {
startWingsAnimation(transferAt.getCurrentScale(), WINGS_START_VECTOR, WINGS_INCREMENT,
WINGS_SLEEP_TIME);
}
} else {
return;
}
}
int currentScreen = workspace.getCurrentScreen();
int currentGroup = workspace.getCurrentGroup();
if (currentScreen != 0 || currentGroup != 0) {
drawLeftDragImg(canvas);
}
if (currentScreen != 1
|| currentGroup != GroupInfoProvider.getInstance(getContext()).getGroupCount() - 1) {
drawRightDragImg(canvas);
}
}
}
private void drawLeftDragImg(Canvas canvas) {
int offset = getDragWingsOffset();
Drawable leftDragNormal = getResources().getDrawable(R.drawable.left_drag_normal);
Drawable leftDrag = getResources().getDrawable(R.drawable.left_drag);
Bitmap arrowheadLeftNormal = BitmapFactory.decodeResource(getResources(), R.drawable.arrowhead_left_normal);
Bitmap arrowheadLeft = BitmapFactory.decodeResource(getResources(), R.drawable.arrowhead_left_active);
canvas.save();
canvas.translate(transferAt.getCurrentScale(), 0);
if (mScrollState == SCROLL_WAITING_IN_ZONE && mScrollRunnable.mDirection == SCROLL_LEFT) {
leftDrag.setBounds(0, offset, SCROLL_ZONE_IMG_WIDTH, offset + calculate.getDragWingsHeight());
leftDrag.draw(canvas);
canvas.drawBitmap(arrowheadLeft, (SCROLL_ZONE_IMG_WIDTH - arrowheadLeft.getWidth()) / 2, getHeight() / 2
- arrowheadLeft.getHeight() / 2, imgPaint);
} else {
leftDragNormal.setBounds(0, offset, SCROLL_ZONE_IMG_WIDTH, offset + calculate.getDragWingsHeight());
leftDragNormal.draw(canvas);
canvas.drawBitmap(arrowheadLeftNormal, (SCROLL_ZONE_IMG_WIDTH - arrowheadLeftNormal.getWidth()) / 2, getHeight() / 2
- arrowheadLeftNormal.getHeight() / 2, imgPaint);
}
canvas.restore();
}
if (workspace.isScrollerFinished()) {
if (mDragging) {
if (transferAt == null) {
startWingsAnimation(WINGS_START_VECTOR, WINGS_END_VECTOR, WINGS_INCREMENT, WINGS_SLEEP_TIME);
}
if (!transferAt.isAlive() && needWingsAnimation) {
if (changeWingsAnimationState) {
if (transferAtListener.getAnimationState() == DragLayerAnimationThread.MOVE_IN
&& transferAt.getCurrentScale() > WINGS_START_VECTOR) {
startWingsAnimation(transferAt.getCurrentScale(), WINGS_START_VECTOR, WINGS_INCREMENT,
WINGS_MOVE_IN_SLEEP_TIME);
} else if (transferAtListener.getAnimationState() == DragLayerAnimationThread.MOVE_OUT
&& transferAt.getCurrentScale() < WINGS_END_VECTOR) {
startWingsAnimation(transferAt.getCurrentScale(), WINGS_END_VECTOR, WINGS_INCREMENT,
WINGS_MOVE_OUT_SLEEP_TIME);
}
} else {
startWingsAnimation(WINGS_START_VECTOR, WINGS_END_VECTOR, WINGS_INCREMENT, WINGS_SLEEP_TIME);
}
}
} else {
if (transferAt != null) {
if (transferAt.isAlive()) {
transferAt.setAnimationState(AnimationThread.STATE_ZOOM_OUT);
} else if (needWingsAnimation && transferAt.getCurrentScale() != WINGS_START_VECTOR) {
startWingsAnimation(transferAt.getCurrentScale(), WINGS_START_VECTOR, WINGS_INCREMENT,
WINGS_SLEEP_TIME);
}
} else {
return;
}
}
int currentScreen = workspace.getCurrentScreen();
int currentGroup = workspace.getCurrentGroup();
if (currentScreen != 0 || currentGroup != 0) {
drawLeftDragImg(canvas);
}
if (currentScreen != 1
|| currentGroup != GroupInfoProvider.getInstance(getContext()).getGroupCount() - 1) {
drawRightDragImg(canvas);
}
}
}
private void drawLeftDragImg(Canvas canvas) {
int offset = getDragWingsOffset();
Drawable leftDragNormal = getResources().getDrawable(R.drawable.left_drag_normal);
Drawable leftDrag = getResources().getDrawable(R.drawable.left_drag);
Bitmap arrowheadLeftNormal = BitmapFactory.decodeResource(getResources(), R.drawable.arrowhead_left_normal);
Bitmap arrowheadLeft = BitmapFactory.decodeResource(getResources(), R.drawable.arrowhead_left_active);
canvas.save();
canvas.translate(transferAt.getCurrentScale(), 0);
if (mScrollState == SCROLL_WAITING_IN_ZONE && mScrollRunnable.mDirection == SCROLL_LEFT) {
leftDrag.setBounds(0, offset, SCROLL_ZONE_IMG_WIDTH, offset + calculate.getDragWingsHeight());
leftDrag.draw(canvas);
canvas.drawBitmap(arrowheadLeft, (SCROLL_ZONE_IMG_WIDTH - arrowheadLeft.getWidth()) / 2, getHeight() / 2
- arrowheadLeft.getHeight() / 2, imgPaint);
} else {
leftDragNormal.setBounds(0, offset, SCROLL_ZONE_IMG_WIDTH, offset + calculate.getDragWingsHeight());
leftDragNormal.draw(canvas);
canvas.drawBitmap(arrowheadLeftNormal, (SCROLL_ZONE_IMG_WIDTH - arrowheadLeftNormal.getWidth()) / 2, getHeight() / 2
- arrowheadLeftNormal.getHeight() / 2, imgPaint);
}
canvas.restore();
}