Fix issue #5192141: systemui asplodes after enough tapping on the windowlist button
Change-Id: I5afb2d54b531d9eac9435660616579324f239812
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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"
|
||||
/>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)");
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user