Fix issue with adding widget with config activity to empty screen (issue 11381059)

Change-Id: Ic7eecb30422e7a6cf35ebe8470d9eba8752d406e
This commit is contained in:
Adam Cohen
2013-10-31 15:03:35 -07:00
parent 3b185e2513
commit 917e38851c
3 changed files with 15 additions and 1 deletions
@@ -76,6 +76,7 @@ public class CellLayout extends ViewGroup {
private int mHeightGap;
private int mMaxGap;
private boolean mScrollingTransformsDirty = false;
private boolean mDropPending = false;
private final Rect mRect = new Rect();
private final CellInfo mCellInfo = new CellInfo();
@@ -332,6 +333,14 @@ public class CellLayout extends ViewGroup {
mShortcutsAndWidgets.setInvertIfRtl(invert);
}
public void setDropPending(boolean pending) {
mDropPending = pending;
}
public boolean isDropPending() {
return mDropPending;
}
private void invalidateBubbleTextView(BubbleTextView icon) {
final int padding = icon.getPressedOrFocusedBackgroundPadding();
invalidate(icon.getLeft() + getPaddingLeft() - padding,
+4
View File
@@ -754,10 +754,14 @@ public class Launcher extends Activity
};
} else {
result = resultCode;
final CellLayout dropLayout =
(CellLayout) mWorkspace.getScreenWithId(mPendingAddInfo.screenId);
dropLayout.setDropPending(true);
onComplete = new Runnable() {
@Override
public void run() {
completeTwoStageWidgetDrop(result, appWidgetId);
dropLayout.setDropPending(false);
}
};
}
+2 -1
View File
@@ -671,7 +671,8 @@ public class Workspace extends SmoothPagedView
CellLayout finalScreen = mWorkspaceScreens.get(finalScreenId);
// If the final screen is empty, convert it to the extra empty screen
if (finalScreen.getShortcutsAndWidgets().getChildCount() == 0) {
if (finalScreen.getShortcutsAndWidgets().getChildCount() == 0 &&
!finalScreen.isDropPending()) {
mWorkspaceScreens.remove(finalScreenId);
mScreenOrder.remove(finalScreenId);