summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2012-05-31 12:31:39 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-05-31 12:31:39 -0700
commit6f8e526e2818e4ceb39cede79abcf2d48cfc4c8f (patch)
tree48f08e7f36871201361aae521cf5db4ece968254
parent0eb8d31430fb8f9e1f25119220312918206b05ea (diff)
parent78a4b7993b95d0f0270a0bb0ce58355fe5963e97 (diff)
downloadandroid_packages_apps_Trebuchet-6f8e526e2818e4ceb39cede79abcf2d48cfc4c8f.zip
android_packages_apps_Trebuchet-6f8e526e2818e4ceb39cede79abcf2d48cfc4c8f.tar.gz
android_packages_apps_Trebuchet-6f8e526e2818e4ceb39cede79abcf2d48cfc4c8f.tar.bz2
am 78a4b799: Merge "Making folders open/close smoothly" into jb-dev
* commit '78a4b7993b95d0f0270a0bb0ce58355fe5963e97': Making folders open/close smoothly
-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 92cabe5..db65a31 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() {