Enabling reordering

-> Reordering is enabled and persists
-> Fixed persistence issue when adding items to empty screen

Change-Id: I7c797b2c81a2988c95d8d9383be46d6ef0b7532d
This commit is contained in:
Adam Cohen
2013-07-11 14:21:49 -07:00
parent ce376639c8
commit dedbd962dc
4 changed files with 64 additions and 8 deletions
+7 -1
View File
@@ -113,6 +113,7 @@ public class CellLayout extends ViewGroup {
// If we're actively dragging something over this screen, mIsDragOverlapping is true
private boolean mIsDragOverlapping = false;
private final Point mDragCenter = new Point();
boolean mUseActiveGlowBackground = false;
// These arrays are used to implement the drag visualization on x-large screens.
// They are used as circular arrays, indexed by mDragOutlineCurrent.
@@ -383,10 +384,15 @@ public class CellLayout extends ViewGroup {
void setIsDragOverlapping(boolean isDragOverlapping) {
if (mIsDragOverlapping != isDragOverlapping) {
mIsDragOverlapping = isDragOverlapping;
setUseActiveGlowBackground(mIsDragOverlapping);
invalidate();
}
}
void setUseActiveGlowBackground(boolean use) {
mUseActiveGlowBackground = use;
}
boolean getIsDragOverlapping() {
return mIsDragOverlapping;
}
@@ -437,7 +443,7 @@ public class CellLayout extends ViewGroup {
if (mBackgroundAlpha > 0.0f) {
Drawable bg;
if (mIsDragOverlapping) {
if (mUseActiveGlowBackground) {
// In the mini case, we draw the active_glow bg *over* the active background
bg = mActiveGlowBackground;
} else {
+5 -3
View File
@@ -2432,9 +2432,11 @@ public class Launcher extends Activity
mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
// Disabling reordering until we sort out some issues.
//mWorkspace.startReordering();
// TODO: need to have a new way to set wallpaper or start reordering
startWallpaper();
if (mWorkspace.getIdForScreen((CellLayout) v) >= 0) {
mWorkspace.startReordering();
} else {
startWallpaper();
}
} else {
if (!(itemUnderLongClick instanceof Folder)) {
// User long pressed on an item
+1 -1
View File
@@ -87,7 +87,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
// We are disabling touch interaction of the widget region for factory ROM.
private static final boolean DISABLE_TOUCH_INTERACTION = false;
private static final boolean DISABLE_TOUCH_SIDE_PAGES = false;
private static final boolean DISABLE_FLING_TO_DELETE = false;
private static final boolean DISABLE_FLING_TO_DELETE = true;
static final int AUTOMATIC_PAGE_SPACING = -1;
+51 -3
View File
@@ -650,10 +650,9 @@ public class Workspace extends SmoothPagedView
return;
}
}
// If an item is added to the extra empty screen, we convert it to a real
if (screenId == EXTRA_EMPTY_SCREEN_ID) {
screenId = commitExtraEmptyScreen();
// This should never happen
throw new RuntimeException("Screen id should not be EXTRA_EMPTY_SCREEN_ID");
}
final CellLayout layout;
@@ -1666,6 +1665,49 @@ public class Workspace extends SmoothPagedView
return getChangeStateAnimation(state, animated, 0);
}
void boundByReorderablePages(boolean isReordering, int[] range) {
int count = mScreenOrder.size();
int start = -1;
int end = -1;
//
for (int i = 0; i < count; i++) {
if (start < 0 && mScreenOrder.get(i) >= 0) {
start = i;
}
if (start >=0 && mScreenOrder.get(i) >= 0) {
end = i;
}
}
range[0] = start;
range[1] = end;
}
protected void onStartReordering() {
super.onStartReordering();
int count = getChildCount();
for (int i = 0; i < count; i++) {
((CellLayout) getChildAt(i)).setUseActiveGlowBackground(true);
}
showOutlines();
}
protected void onEndReordering() {
super.onEndReordering();
int count = getChildCount();
for (int i = 0; i < count; i++) {
((CellLayout) getChildAt(i)).setUseActiveGlowBackground(false);
}
hideOutlines();
mScreenOrder.clear();
for (int i = 0; i < count; i++) {
CellLayout cl = ((CellLayout) getChildAt(i));
mScreenOrder.add(getIdForScreen(cl));
}
mLauncher.getModel().updateWorkspaceScreenOrder(mLauncher, mScreenOrder);
}
Animator getChangeStateAnimation(final State state, boolean animated, int delay) {
if (mState == state) {
return null;
@@ -2113,6 +2155,12 @@ public class Workspace extends SmoothPagedView
return false;
}
}
long screenId = getIdForScreen(dropTargetLayout);
if (screenId == EXTRA_EMPTY_SCREEN_ID) {
commitExtraEmptyScreen();
}
return true;
}