Merge "Disabled task snapshot for TV" into oc-dev
am: 08b953dd2e
Change-Id: I220460741e82abbfaf3746763cbb4b09e9357965
This commit is contained in:
@@ -17,15 +17,13 @@
|
||||
package com.android.server.wm;
|
||||
|
||||
import static android.app.ActivityManager.ENABLE_TASK_SNAPSHOTS;
|
||||
import static android.graphics.Bitmap.Config.ARGB_8888;
|
||||
import static android.graphics.Bitmap.Config.HARDWARE;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.ActivityManager.StackId;
|
||||
import android.app.ActivityManager.TaskSnapshot;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.GraphicBuffer;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Environment;
|
||||
@@ -89,9 +87,16 @@ class TaskSnapshotController {
|
||||
private final ArraySet<Task> mTmpTasks = new ArraySet<>();
|
||||
private final Handler mHandler = new Handler();
|
||||
|
||||
/**
|
||||
* Flag indicating whether we are running on an Android TV device.
|
||||
*/
|
||||
private final boolean mIsRunningOnTv;
|
||||
|
||||
TaskSnapshotController(WindowManagerService service) {
|
||||
mService = service;
|
||||
mCache = new TaskSnapshotCache(mService, mLoader);
|
||||
mIsRunningOnTv = mService.mContext.getPackageManager().hasSystemFeature(
|
||||
PackageManager.FEATURE_LEANBACK);
|
||||
}
|
||||
|
||||
void systemReady() {
|
||||
@@ -112,7 +117,7 @@ class TaskSnapshotController {
|
||||
}
|
||||
|
||||
private void handleClosingApps(ArraySet<AppWindowToken> closingApps) {
|
||||
if (!ENABLE_TASK_SNAPSHOTS || ActivityManager.isLowRamDeviceStatic()) {
|
||||
if (shouldDisableSnapshots()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -188,6 +193,10 @@ class TaskSnapshotController {
|
||||
1f /* scale */);
|
||||
}
|
||||
|
||||
private boolean shouldDisableSnapshots() {
|
||||
return !ENABLE_TASK_SNAPSHOTS || ActivityManager.isLowRamDeviceStatic() || mIsRunningOnTv;
|
||||
}
|
||||
|
||||
private Rect minRect(Rect rect1, Rect rect2) {
|
||||
return new Rect(Math.min(rect1.left, rect2.left),
|
||||
Math.min(rect1.top, rect2.top),
|
||||
@@ -301,7 +310,7 @@ class TaskSnapshotController {
|
||||
* Called when screen is being turned off.
|
||||
*/
|
||||
void screenTurningOff(ScreenOffListener listener) {
|
||||
if (!ENABLE_TASK_SNAPSHOTS || ActivityManager.isLowRamDeviceStatic()) {
|
||||
if (shouldDisableSnapshots()) {
|
||||
listener.onScreenOff();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -601,7 +601,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
final UnknownAppVisibilityController mUnknownAppVisibilityController =
|
||||
new UnknownAppVisibilityController(this);
|
||||
final TaskSnapshotController mTaskSnapshotController = new TaskSnapshotController(this);
|
||||
final TaskSnapshotController mTaskSnapshotController;
|
||||
|
||||
boolean mIsTouchDevice;
|
||||
|
||||
@@ -992,6 +992,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
mWindowPlacerLocked = new WindowSurfacePlacer(this);
|
||||
mPolicy = policy;
|
||||
mTaskSnapshotController = new TaskSnapshotController(this);
|
||||
|
||||
LocalServices.addService(WindowManagerPolicy.class, mPolicy);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user