merge in honeycomb-release history after reset to honeycomb
diff --git a/res/xml/default_workspace.xml b/res/xml/default_workspace.xml
index b02e0fd..0519a48 100644
--- a/res/xml/default_workspace.xml
+++ b/res/xml/default_workspace.xml
@@ -43,15 +43,6 @@
launcher:spanX="4"
launcher:spanY="1" />
- <appwidget
- launcher:packageName="com.android.vending"
- launcher:className="com.android.vending.MarketWidgetProvider"
- launcher:screen="3"
- launcher:x="1"
- launcher:y="1"
- launcher:spanX="2"
- launcher:spanY="2" />
-
<!-- Far-right screen [4] -->
</favorites>
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 2359e32..fd389ca 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -488,7 +488,7 @@
bg = mini ? mActiveBackgroundMini : mActiveGlowBackground;
} else if (mIsDragOccuring && mAcceptsDrops) {
bg = mini ? mActiveBackgroundMini : mActiveBackground;
- } else if (mIsDefaultDropTarget) {
+ } else if (mIsDragOccuring && mIsDefaultDropTarget) {
bg = mini ? mNormalGlowBackgroundMini : mNormalGlowBackground;
} else {
bg = mini ? mNormalBackgroundMini : mNormalBackground;
@@ -963,14 +963,10 @@
if (lp.animateDrop) {
lp.animateDrop = false;
- // This call needs to be posted since it results in a requestLayout()
- // which shouldn't be called from within a layout pass (can cause a bad
- // state of the tree).
- post(new Runnable() {
- public void run() {
- ((Workspace) mParent).animateViewIntoPosition(child);
- }
- });
+ // This call does not result in a requestLayout(), but at one point did.
+ // We need to be cautious about any method calls within the layout pass
+ // to insure we don't leave the view tree in a bad state.
+ ((Workspace) mParent).animateViewIntoPosition(child);
}
}
}
@@ -1392,7 +1388,7 @@
lp.isDragging = false;
lp.dropped = true;
lp.animateDrop = animate;
- child.setVisibility(View.VISIBLE);
+ child.setVisibility(View.INVISIBLE);
child.requestLayout();
}
}
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 1085083..9fcd1b4 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -1298,6 +1298,9 @@
for (int i = 0; i < screenCount; i++) {
final CellLayout cl = (CellLayout)getChildAt(i);
float finalAlphaValue = (i == mCurrentPage) ? 1.0f : 0.0f;
+ float finalAlphaMultiplierValue =
+ ((i == mCurrentPage) && (mShrinkState != ShrinkState.SPRING_LOADED)) ?
+ 0.0f : 1.0f;
float rotation = 0.0f;
if (i < mCurrentPage) {
@@ -1315,6 +1318,8 @@
PropertyValuesHolder.ofFloat("scaleX", finalScaleFactor),
PropertyValuesHolder.ofFloat("scaleY", finalScaleFactor),
PropertyValuesHolder.ofFloat("backgroundAlpha", finalBackgroundAlpha),
+ PropertyValuesHolder.ofFloat("backgroundAlphaMultiplier",
+ finalAlphaMultiplierValue),
PropertyValuesHolder.ofFloat("alpha", finalAlphaValue),
PropertyValuesHolder.ofFloat("rotationY", rotation));
animWithInterpolator.setDuration(duration);
@@ -1326,6 +1331,7 @@
cl.setScaleX(finalScaleFactor);
cl.setScaleY(finalScaleFactor);
cl.setBackgroundAlpha(0.0f);
+ cl.setBackgroundAlphaMultiplier(finalAlphaMultiplierValue);
cl.setAlpha(finalAlphaValue);
cl.setRotationY(rotation);
mUnshrinkAnimationListener.onAnimationEnd(null);
@@ -1516,6 +1522,10 @@
lp.oldY = viewY - (parent.getTop() - mScrollY);
}
+ /*
+ * We should be careful that this method cannot result in any synchronous requestLayout()
+ * calls, as it is called from onLayout().
+ */
public void animateViewIntoPosition(final View view) {
final CellLayout parent = (CellLayout) view.getParent();
final CellLayout.LayoutParams lp = (CellLayout.LayoutParams) view.getLayoutParams();
@@ -1574,7 +1584,6 @@
}
});
- view.setVisibility(View.INVISIBLE);
mDropAnim.start();
}