Add a new API to control task snapshot behavior.
Bug: 193962530 Test: manual test Change-Id: I600efcafad0ad3118fc704533d56d2c9180f3308 (cherry picked from commit 583107258411942cd25fa0c5071480a94d3beea7)
This commit is contained in:
@@ -875,4 +875,10 @@ interface IWindowManager
|
||||
* @see android.window.WindowProviderService#getLaunchedDisplayId
|
||||
*/
|
||||
int getImeDisplayId();
|
||||
|
||||
/**
|
||||
* Control if we should enable task snapshot features on this device.
|
||||
* @hide
|
||||
*/
|
||||
void setTaskSnapshotEnabled(boolean enabled);
|
||||
}
|
||||
|
||||
@@ -114,14 +114,9 @@ class TaskSnapshotController {
|
||||
private final boolean mIsRunningOnIoT;
|
||||
|
||||
/**
|
||||
* Flag indicating whether we are running on an Android Wear device.
|
||||
* Flag indicating if task snapshot is enabled on this device.
|
||||
*/
|
||||
private final boolean mIsRunningOnWear;
|
||||
|
||||
/**
|
||||
* Flag indicating if device configuration has disabled app snapshots.
|
||||
*/
|
||||
private final boolean mConfigDisableTaskSnapshots;
|
||||
private boolean mTaskSnapshotEnabled;
|
||||
|
||||
TaskSnapshotController(WindowManagerService service) {
|
||||
mService = service;
|
||||
@@ -132,12 +127,12 @@ class TaskSnapshotController {
|
||||
PackageManager.FEATURE_LEANBACK);
|
||||
mIsRunningOnIoT = mService.mContext.getPackageManager().hasSystemFeature(
|
||||
PackageManager.FEATURE_EMBEDDED);
|
||||
mIsRunningOnWear = mService.mContext.getPackageManager().hasSystemFeature(
|
||||
PackageManager.FEATURE_WATCH);
|
||||
mHighResTaskSnapshotScale = mService.mContext.getResources().getFloat(
|
||||
com.android.internal.R.dimen.config_highResTaskSnapshotScale);
|
||||
mConfigDisableTaskSnapshots = mService.mContext.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_disableTaskSnapshots);
|
||||
mTaskSnapshotEnabled =
|
||||
!mService.mContext
|
||||
.getResources()
|
||||
.getBoolean(com.android.internal.R.bool.config_disableTaskSnapshots);
|
||||
}
|
||||
|
||||
void systemReady() {
|
||||
@@ -494,9 +489,12 @@ class TaskSnapshotController {
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
void setTaskSnapshotEnabled(boolean enabled) {
|
||||
mTaskSnapshotEnabled = enabled;
|
||||
}
|
||||
|
||||
boolean shouldDisableSnapshots() {
|
||||
return mIsRunningOnWear || mIsRunningOnTv || mIsRunningOnIoT
|
||||
|| mConfigDisableTaskSnapshots;
|
||||
return mIsRunningOnTv || mIsRunningOnIoT || !mTaskSnapshotEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -696,6 +694,7 @@ class TaskSnapshotController {
|
||||
|
||||
void dump(PrintWriter pw, String prefix) {
|
||||
pw.println(prefix + "mHighResTaskSnapshotScale=" + mHighResTaskSnapshotScale);
|
||||
pw.println(prefix + "mTaskSnapshotEnabled=" + mTaskSnapshotEnabled);
|
||||
mCache.dump(pw, prefix);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8668,4 +8668,9 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
: DEFAULT_DISPLAY;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTaskSnapshotEnabled(boolean enabled) {
|
||||
mTaskSnapshotController.setTaskSnapshotEnabled(enabled);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user