Save most recent thumbnail Bitmap for reuse.
This keeps Recents from taking two identical screenshots, one for the Recents thumbnail and one for the pause activity thumbnail. Fixes bug 7351766. Change-Id: Ia4d12802151666ec36e4d9b395cf10e1e02dc37f
This commit is contained in:
@ -45,6 +45,7 @@ import android.content.pm.ResolveInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Bitmap.Config;
|
||||
import android.os.Binder;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
@ -280,6 +281,13 @@ final class ActivityStack {
|
||||
*/
|
||||
boolean mDismissKeyguardOnNextActivity = false;
|
||||
|
||||
/**
|
||||
* Save the most recent screenshot for reuse. This keeps Recents from taking two identical
|
||||
* screenshots, one for the Recents thumbnail and one for the pauseActivity thumbnail.
|
||||
*/
|
||||
private ActivityRecord mLastScreenshotActivity = null;
|
||||
private Bitmap mLastScreenshotBitmap = null;
|
||||
|
||||
int mThumbnailWidth = -1;
|
||||
int mThumbnailHeight = -1;
|
||||
|
||||
@ -931,8 +939,16 @@ final class ActivityStack {
|
||||
}
|
||||
|
||||
if (w > 0) {
|
||||
return mService.mWindowManager.screenshotApplications(who.appToken,
|
||||
Display.DEFAULT_DISPLAY, w, h);
|
||||
if (who != mLastScreenshotActivity || mLastScreenshotBitmap == null
|
||||
|| mLastScreenshotBitmap.getWidth() != w
|
||||
|| mLastScreenshotBitmap.getHeight() != h) {
|
||||
mLastScreenshotActivity = who;
|
||||
mLastScreenshotBitmap = mService.mWindowManager.screenshotApplications(
|
||||
who.appToken, Display.DEFAULT_DISPLAY, w, h);
|
||||
}
|
||||
if (mLastScreenshotBitmap != null) {
|
||||
return mLastScreenshotBitmap.copy(Config.ARGB_8888, true);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
Reference in New Issue
Block a user