summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dianne Hackborn <hackbod@google.com> 2011-08-24 12:07:10 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-08-24 12:07:10 -0700
commit2da59ffbda80594e6312f400341810f91e1d333a (patch)
tree82433cfeea222be65ffea7e46ba2c000d4371199
parent192df696d3499258d6d3ae383a5ab05a5021d875 (diff)
parentcfb9f2bca39772aecd072e2a30342a67b6319bbb (diff)
Merge "Fix issue #5192141: systemui asplodes after enough tapping on the windowlist button"
-rw-r--r--core/java/android/app/ActivityThread.java1
-rw-r--r--packages/SystemUI/res/anim/recent_appear.xml2
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/Choreographer.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java5
-rw-r--r--services/java/com/android/server/am/TaskRecord.java2
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java9
6 files changed, 18 insertions, 6 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 6fb79656b683..e3075d763ed3 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -1943,7 +1943,6 @@ public final class ActivityThread {
// we are back active so skip it.
unscheduleGcIdler();
- Slog.i(TAG, "Launch: profileFd=" + r.profileFile + " stop=" + r.autoStopProfiler);
if (r.profileFd != null) {
mBoundApplication.setProfiler(r.profileFile, r.profileFd);
mBoundApplication.startProfiling();
diff --git a/packages/SystemUI/res/anim/recent_appear.xml b/packages/SystemUI/res/anim/recent_appear.xml
index 4400d9dcdce7..20fe052d4a25 100644
--- a/packages/SystemUI/res/anim/recent_appear.xml
+++ b/packages/SystemUI/res/anim/recent_appear.xml
@@ -16,5 +16,5 @@
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0" android:toAlpha="1.0"
- android:duration="@android:integer/config_shortAnimTime"
+ android:duration="@android:integer/config_mediumAnimTime"
/>
diff --git a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
index 2d327c41c6eb..9749a1dcdef8 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
@@ -29,6 +29,7 @@ import android.view.View;
// should group this into a multi-property animation
private static final int OPEN_DURATION = 136;
private static final int CLOSE_DURATION = 250;
+ private static final int SCRIM_DURATION = 400;
private static final String TAG = RecentsPanelView.TAG;
private static final boolean DEBUG = RecentsPanelView.DEBUG;
@@ -71,12 +72,14 @@ import android.view.View;
posAnim.setInterpolator(appearing
? new android.view.animation.DecelerateInterpolator(2.5f)
: new android.view.animation.AccelerateInterpolator(2.5f));
+ posAnim.setDuration(appearing ? OPEN_DURATION : CLOSE_DURATION);
Animator glowAnim = ObjectAnimator.ofFloat(mContentView, "alpha",
mContentView.getAlpha(), appearing ? 1.0f : 0.0f);
glowAnim.setInterpolator(appearing
? new android.view.animation.AccelerateInterpolator(1.0f)
: new android.view.animation.DecelerateInterpolator(1.0f));
+ glowAnim.setDuration(appearing ? OPEN_DURATION : CLOSE_DURATION);
mContentAnim = new AnimatorSet();
final Builder builder = mContentAnim.play(glowAnim).with(posAnim);
@@ -84,9 +87,9 @@ import android.view.View;
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.setDuration(appearing ? OPEN_DURATION : CLOSE_DURATION);
mContentAnim.addListener(this);
if (mListener != null) {
mContentAnim.addListener(mListener);
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index 8c03ef8e206f..9cc2c29129b2 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -39,7 +39,6 @@ import android.graphics.RectF;
import android.graphics.Shader.TileMode;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Handler;
@@ -497,7 +496,7 @@ public class RecentsPanelView extends RelativeLayout
synchronized (ad) {
ad.mLabel = label;
ad.mIcon = icon;
- ad.setThumbnail(thumbs.mainThumbnail);
+ ad.setThumbnail(thumbs != null ? thumbs.mainThumbnail : null);
}
}
@@ -591,7 +590,7 @@ public class RecentsPanelView extends RelativeLayout
ActivityDescription ad = descriptions.get(i);
loadActivityDescription(ad, i);
long now = SystemClock.uptimeMillis();
- nextTime += 200;
+ nextTime += 150;
if (nextTime > now) {
try {
Thread.sleep(nextTime-now);
diff --git a/services/java/com/android/server/am/TaskRecord.java b/services/java/com/android/server/am/TaskRecord.java
index e61a7f4e10d3..87129eaca73f 100644
--- a/services/java/com/android/server/am/TaskRecord.java
+++ b/services/java/com/android/server/am/TaskRecord.java
@@ -116,6 +116,8 @@ class TaskRecord extends ThumbnailHolder {
if (!askedCompatMode) {
pw.print(prefix); pw.print("askedCompatMode="); pw.println(askedCompatMode);
}
+ pw.print(prefix); pw.print("lastThumbnail="); pw.print(lastThumbnail);
+ pw.print(" lastDescription="); pw.println(lastDescription);
pw.print(prefix); pw.print("lastActiveTime="); pw.print(lastActiveTime);
pw.print(" (inactive for ");
pw.print((getInactiveDuration()/1000)); pw.println("s)");
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 3df94a6555dd..e258b1a45346 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -163,6 +163,7 @@ public class WindowManagerService extends IWindowManager.Stub
static final boolean DEBUG_WALLPAPER = false;
static final boolean DEBUG_DRAG = false;
static final boolean DEBUG_SCREEN_ON = false;
+ static final boolean DEBUG_SCREENSHOT = false;
static final boolean SHOW_SURFACE_ALLOC = false;
static final boolean SHOW_TRANSACTIONS = false;
static final boolean HIDE_STACK_CRAWLS = true;
@@ -4996,6 +4997,14 @@ public class WindowManagerService extends IWindowManager.Stub
dh = tmp;
rot = (rot == Surface.ROTATION_90) ? Surface.ROTATION_270 : Surface.ROTATION_90;
}
+ if (DEBUG_SCREENSHOT) {
+ Slog.i(TAG, "Screenshot: " + dw + "x" + dh + " from 0 to " + maxLayer);
+ for (int i=0; i<mWindows.size(); i++) {
+ Slog.i(TAG, mWindows.get(i) + ": " + mWindows.get(i).mLayer
+ + " animLayer=" + mWindows.get(i).mAnimLayer
+ + " surfaceLayer=" + mWindows.get(i).mSurfaceLayer);
+ }
+ }
rawss = Surface.screenshot(dw, dh, 0, maxLayer);
}