am c8179e78: Merge "Improve transition out of recents" into jb-dev
* commit 'c8179e78052af3d68725e1160214a736f143f8a2':
Improve transition out of recents
diff --git a/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml b/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
index 869b164..8a21117 100644
--- a/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
+++ b/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
@@ -27,12 +27,6 @@
systemui:recentItemLayout="@layout/status_bar_recent_item"
>
- <ImageView
- android:id="@+id/recents_transition_placeholder_icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="invisible" />
-
<FrameLayout
android:id="@+id/recents_bg_protect"
android:background="@drawable/status_bar_recents_background"
@@ -42,6 +36,12 @@
android:clipToPadding="false"
android:clipChildren="false">
+ <ImageView
+ android:id="@+id/recents_transition_placeholder_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="invisible" />
+
<com.android.systemui.recent.RecentsHorizontalScrollView android:id="@+id/recents_container"
android:layout_width="wrap_content"
android:layout_height="match_parent"
diff --git a/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml b/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
index fc9fcf4..1d29c5a 100644
--- a/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
+++ b/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
@@ -27,12 +27,6 @@
systemui:recentItemLayout="@layout/status_bar_recent_item"
>
- <ImageView
- android:id="@+id/recents_transition_placeholder_icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="invisible" />
-
<FrameLayout
android:id="@+id/recents_bg_protect"
android:background="@drawable/status_bar_recents_background"
@@ -40,6 +34,12 @@
android:layout_height="match_parent"
android:layout_alignParentBottom="true">
+ <ImageView
+ android:id="@+id/recents_transition_placeholder_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="invisible" />
+
<com.android.systemui.recent.RecentsVerticalScrollView
android:id="@+id/recents_container"
android:layout_width="match_parent"
diff --git a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
index a8c2020..ccdf038 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
@@ -102,12 +102,14 @@
builder.with(noRecentAppsFadeAnim);
}
- Drawable background = mScrimView.getBackground();
- if (background != null) {
- Animator bgAnim = ObjectAnimator.ofInt(background,
- "alpha", appearing ? 0 : 255, appearing ? 255 : 0);
- bgAnim.setDuration(appearing ? SCRIM_DURATION : CLOSE_DURATION);
- builder.with(bgAnim);
+ if (appearing) {
+ Drawable background = mScrimView.getBackground();
+ if (background != null) {
+ Animator bgAnim = ObjectAnimator.ofInt(background,
+ "alpha", appearing ? 0 : 255, appearing ? 255 : 0);
+ bgAnim.setDuration(appearing ? SCRIM_DURATION : CLOSE_DURATION);
+ builder.with(bgAnim);
+ }
}
mContentAnim.addListener(this);
if (mListener != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index feb1ac8..6785c29 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -469,7 +469,7 @@
Display d = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE))
.getDefaultDisplay();
if (!ActivityManager.isHighEndGfx(d)) {
- mRecentsScrim.setBackgroundDrawable(null);
+ mRecentsScrim.setBackground(null);
} else if (mRecentsScrim.getBackground() instanceof BitmapDrawable) {
// In order to save space, we make the background texture repeat in the Y direction
((BitmapDrawable) mRecentsScrim.getBackground()).setTileModeY(TileMode.REPEAT);
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index c90c0c7..8c917c1 100755
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -3221,28 +3221,23 @@
// Entering app zooms out from the center of the thumbnail.
float scaleW = thumbWidth / mAppDisplayWidth;
float scaleH = thumbHeight / mAppDisplayHeight;
- AnimationSet set = new AnimationSet(true);
Animation scale = new ScaleAnimation(scaleW, 1, scaleH, 1,
computePivot(mNextAppTransitionStartX, scaleW),
computePivot(mNextAppTransitionStartY, scaleH));
scale.setDuration(duration);
scale.setFillBefore(true);
- set.addAnimation(scale);
- // Need to set an alpha animation on the entering app window
- // in case it appears one frame before the thumbnail window
- // (this solves flicker)
- Animation alpha = new AlphaAnimation(0, 1);
- alpha.setDuration(1);
- alpha.setFillAfter(true);
- set.addAnimation(alpha);
- a = set;
if (delayDuration > 0) {
- a.setStartOffset(delayDuration);
+ scale.setStartOffset(delayDuration);
}
+ a = scale;
} else {
- a = createExitAnimationLocked(transit, duration);
- if (delayDuration > 0) {
- a.setStartOffset(delayDuration);
+ if (delayed) {
+ a = new AlphaAnimation(1, 0);
+ a.setStartOffset(0);
+ a.setDuration(delayDuration - 50);
+ a.setBackgroundColor(0xFF000000);
+ } else {
+ a = createExitAnimationLocked(transit, duration);
}
}
a.setFillAfter(true);