Fix issue #5192141: systemui asplodes after enough tapping on the windowlist button

Change-Id: I5afb2d54b531d9eac9435660616579324f239812
This commit is contained in:
Dianne Hackborn
2011-08-24 10:51:49 -07:00
parent 332645960c
commit cfb9f2bca3
6 changed files with 18 additions and 6 deletions

View File

@@ -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();

View File

@@ -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"
/>

View File

@@ -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);

View File

@@ -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);

View File

@@ -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)");

View File

@@ -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);
}