summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2012-05-31 12:28:48 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-05-31 12:28:48 -0700
commit78a4b7993b95d0f0270a0bb0ce58355fe5963e97 (patch)
tree48f08e7f36871201361aae521cf5db4ece968254 /src/com/android/launcher2
parent3dcd79ecb39af92b94ac7f41558c2743a51f0596 (diff)
parent0121c3ea3d5bae176af193ea8ef23ae8a868dd31 (diff)
downloadandroid_packages_apps_Trebuchet-78a4b7993b95d0f0270a0bb0ce58355fe5963e97.tar.gz
android_packages_apps_Trebuchet-78a4b7993b95d0f0270a0bb0ce58355fe5963e97.tar.bz2
android_packages_apps_Trebuchet-78a4b7993b95d0f0270a0bb0ce58355fe5963e97.zip
Merge "Making folders open/close smoothly" into jb-dev
Diffstat (limited to 'src/com/android/launcher2')
-rw-r--r--src/com/android/launcher2/Folder.java32
1 files changed, 27 insertions, 5 deletions
diff --git a/src/com/android/launcher2/Folder.java b/src/com/android/launcher2/Folder.java
index 92cabe5a4..db65a31ee 100644
--- a/src/com/android/launcher2/Folder.java
+++ b/src/com/android/launcher2/Folder.java
@@ -106,6 +106,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
private static String sDefaultFolderName;
private static String sHintText;
+ private ObjectAnimator mOpenCloseAnimator;
/**
* Used to inflate the Workspace from XML.
@@ -417,7 +418,8 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 1);
PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 1.0f);
PropertyValuesHolder scaleY = PropertyValuesHolder.ofFloat("scaleY", 1.0f);
- ObjectAnimator oa = ObjectAnimator.ofPropertyValuesHolder(this, alpha, scaleX, scaleY);
+ final ObjectAnimator oa = mOpenCloseAnimator =
+ ObjectAnimator.ofPropertyValuesHolder(this, alpha, scaleX, scaleY);
oa.addListener(new AnimatorListenerAdapter() {
@Override
@@ -430,7 +432,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
@Override
public void onAnimationEnd(Animator animation) {
mState = STATE_OPEN;
-
+ setLayerType(LAYER_TYPE_NONE, null);
Cling cling = mLauncher.showFirstRunFoldersCling();
if (cling != null) {
cling.bringToFront();
@@ -439,7 +441,16 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
}
});
oa.setDuration(mExpandDuration);
- oa.start();
+ setLayerType(LAYER_TYPE_HARDWARE, null);
+ buildLayer();
+ post(new Runnable() {
+ public void run() {
+ // Check if the animator changed in the meantime
+ if (oa != mOpenCloseAnimator)
+ return;
+ oa.start();
+ }
+ });
}
private void sendCustomAccessibilityEvent(int type, String text) {
@@ -465,12 +476,14 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 0);
PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 0.9f);
PropertyValuesHolder scaleY = PropertyValuesHolder.ofFloat("scaleY", 0.9f);
- ObjectAnimator oa = ObjectAnimator.ofPropertyValuesHolder(this, alpha, scaleX, scaleY);
+ final ObjectAnimator oa = mOpenCloseAnimator =
+ ObjectAnimator.ofPropertyValuesHolder(this, alpha, scaleX, scaleY);
oa.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
onCloseComplete();
+ setLayerType(LAYER_TYPE_NONE, null);
mState = STATE_SMALL;
}
@Override
@@ -481,7 +494,16 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
}
});
oa.setDuration(mExpandDuration);
- oa.start();
+ setLayerType(LAYER_TYPE_HARDWARE, null);
+ buildLayer();
+ post(new Runnable() {
+ public void run() {
+ // Check if the animator changed in the meantime
+ if (oa != mOpenCloseAnimator)
+ return;
+ oa.start();
+ }
+ });
}
void notifyDataSetChanged() {