diff options
| author | Michael Jurka <mikejurka@google.com> | 2012-05-12 14:01:43 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-12 14:01:43 -0700 |
| commit | c8179e78052af3d68725e1160214a736f143f8a2 (patch) | |
| tree | 9fffad56501d67d9c03aad3a0d36e70c9533395c | |
| parent | 76e07e7767098a885365e4ae8c8bb51f6a8c3b09 (diff) | |
| parent | d5895a7e8a94e58451af640fe796d1822cbd793f (diff) | |
| download | frameworks_base-c8179e78052af3d68725e1160214a736f143f8a2.zip frameworks_base-c8179e78052af3d68725e1160214a736f143f8a2.tar.gz frameworks_base-c8179e78052af3d68725e1160214a736f143f8a2.tar.bz2 | |
Merge "Improve transition out of recents" into jb-dev
5 files changed, 30 insertions, 33 deletions
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 @@ import android.view.ViewRootImpl; 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 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener 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 @@ public class WindowManagerService extends IWindowManager.Stub // 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); |
